hand
_1_21_68
4
python3.X - 数据分析 - Pandas
共95篇
python3.X - 数据分析 - Pandas
返回栏目
1k
0k
5k
0k
0.1k
0k
2k
3k
1k
1k
0.2k
3k
0k
4k
3k
3k
3k
3k
0.5k
5k
1k
0.3k
3k
4k
7k
2k
7k
0.8k
0.9k
1k
1k
2k
0.4k
0.6k
0.6k
0.5k
0.9k
0.9k
1k
0.9k
1k
0.8k
1k
0.4k
0.4k
0.3k
0.6k
1k
0.9k
1k
1k
1k
0.8k
1k
0.8k
1k
0.7k
0.6k
4k
0.4k
3k
0.7k
0.8k
0.8k
0.2k
2k
1k
0.7k
0.7k
0.4k
0.5k
3k
0.1k
0.7k
0.9k
0.3k
1k
0.4k
0.4k
1k
0.5k
0.1k
0.7k
1k
0k
0.2k
0.7k
0.3k
0k
0k
0.1k
0k
0k
0k
3k
返回python3.X - 数据分析 - Pandas栏目
作者:
贺及楼
成为作者
更新日期:2024-10-18 14:32:00
Pandas 的 pivot 函数是一种数据重塑工具,它将数据从长格式转换为宽格式,通过指定的行、列和值来创建一个新的派生表(pivot table)。这种转换在数据汇总、数据探索和多维数据的分析中非常有用。
数据聚合:可以对数据进行聚合,如求和、平均、最大、最小等。
多维分析:允许你从多个维度分析数据。
灵活的索引:可以自定义索引(行)和列。
index:新 DataFrame 的索引(行标签)。
columns:新 DataFrame 的列标签。
values:要聚合的列的名称或位置。
aggfunc:聚合函数,默认为 mean,但可以指定其他函数,如 sum、min、max 等。
使用 pivot 的例子:
import numpy as np
import pandas as pd
df = pd.DataFrame(data = [{'类别': '黄水果', '水果': '香蕉', '反馈': '点赞', '数量': 14}, {'类别': '黄水果', '水果': '菠萝', '反馈': '点赞', '数量': 30}, {'类别': '黄水果', '水果': '柠檬', '反馈': '点赞', '数量': 50}, {'类别': '红水果', '水果': '草莓', '反馈': '点赞', '数量': 160}, {'类别': '红水果', '水果': '苹果', '反馈': '点赞', '数量': 6}, {'类别': '红水果', '水果': '樱桃', '反馈': '点赞', '数量': 8}, {'类别': '黄水果', '水果': '香蕉', '反馈': '投币', '数量': 7}, {'类别': '黄水果', '水果': '菠萝', '反馈': '投币', '数量': 15}, {'类别': '黄水果', '水果': '柠檬', '反馈': '投币', '数量': 25}, {'类别': '红水果', '水果': '草莓', '反馈': '投币', '数量': 80}, {'类别': '红水果', '水果': '苹果', '反馈': '投币', '数量': 3}, {'类别': '红水果', '水果': '樱桃', '反馈': '投币', '数量': 4}])
类别 | 水果 | 反馈 | 数量 | |
---|---|---|---|---|
0 | 黄水果 | 香蕉 | 点赞 | 14 |
1 | 黄水果 | 菠萝 | 点赞 | 30 |
2 | 黄水果 | 柠檬 | 点赞 | 50 |
3 | 红水果 | 草莓 | 点赞 | 160 |
4 | 红水果 | 苹果 | 点赞 | 6 |
5 | 红水果 | 樱桃 | 点赞 | 8 |
6 | 黄水果 | 香蕉 | 投币 | 7 |
7 | 黄水果 | 菠萝 | 投币 | 15 |
8 | 黄水果 | 柠檬 | 投币 | 25 |
9 | 红水果 | 草莓 | 投币 | 80 |
10 | 红水果 | 苹果 | 投币 | 3 |
11 | 红水果 | 樱桃 | 投币 | 4 |
df1 = pd.pivot(df, index=["类别", "水果"], columns="反馈", values="数量")
df2 = df1.reset_index()
反馈 | 投币 | 点赞 | |
---|---|---|---|
类别 | 水果 | ||
红水果 | 樱桃 | 4 | 8 |
苹果 | 3 | 6 | |
草莓 | 80 | 160 | |
黄水果 | 柠檬 | 25 | 50 |
菠萝 | 15 | 30 | |
香蕉 | 7 | 14 |
反馈 | 类别 | 水果 | 投币 | 点赞 |
---|---|---|---|---|
0 | 红水果 | 樱桃 | 4 | 8 |
1 | 红水果 | 苹果 | 3 | 6 |
2 | 红水果 | 草莓 | 80 | 160 |
3 | 黄水果 | 柠檬 | 25 | 50 |
4 | 黄水果 | 菠萝 | 15 | 30 |
5 | 黄水果 | 香蕉 | 7 | 14 |
df1 = pd.pivot(df, index=["类别", "水果"], columns="反馈", values="数量")
反馈 | 投币 | 点赞 | |
---|---|---|---|
类别 | 水果 | ||
红水果 | 樱桃 | 4 | 8 |
苹果 | 3 | 6 | |
草莓 | 80 | 160 | |
黄水果 | 柠檬 | 25 | 50 |
菠萝 | 15 | 30 | |
香蕉 | 7 | 14 |
df1 = pd.pivot(df, index="反馈", columns=["类别", "水果"], values="数量")
类别 | 黄水果 | 红水果 | ||||
---|---|---|---|---|---|---|
水果 | 香蕉 | 菠萝 | 柠檬 | 草莓 | 苹果 | 樱桃 |
反馈 | ||||||
投币 | 7 | 15 | 25 | 80 | 3 | 4 |
点赞 | 14 | 30 | 50 | 160 | 6 | 8 |
# 以下未验证
# 可以看到上面这一步,就直接相当于df1.set_index(["类别", "水果"])["反馈"].unstack()
# 然后再手动rename_axis、再reset_index即可
python3.X - 数据分析 - Pandas
整章节共95节
快分享给你的小伙伴吧 ~