中文Python的Pandas的 交叉表、透视表和宽长转换

中文Python 0 2

中文版Pandas

打印("地区与类别交叉表:", 表格.交叉表(CSV数据, "客户地区", "产品类别"))
设 类别人员透视 = 表格.透视表(
CSV数据,
值="销售额",
行="产品类别",
列="销售人员",
聚合="sum",
fill_value=0,
)
打印("透视表:", 类别人员透视)
设 宽表 = 表格.数据表({"姓名": ["甲", "乙"], "一月": [10, 20], "二月": [15, 25]})
设 长表 = 表格.融化表格(宽表, ["姓名"], "月份", "数值")
打印("宽表转长表:", 长表)

原版Pandas

print("地区与类别交叉表:", pd.crosstab(CSV数据["客户地区"], CSV数据["产品类别"]))
类别人员透视 = pd.pivot_table(
CSV数据, values="销售额", index="产品类别", columns="销售人员", aggfunc="sum", fill_value=0
)
print("透视表:", 类别人员透视)
宽表 = pd.DataFrame({"姓名": ["甲", "乙"], "一月": [10, 20], "二月": [15, 25]})
长表 = pd.melt(宽表, id_vars=["姓名"], var_name="月份", value_name="数值")
print("宽表转长表:", 长表)

打印信息

地区与类别交叉表: 产品类别  办公设备  电子产品  电脑配件  网络设备
客户地区
上海       2     5     0     1
北京       1     1     1     3
南京       0     3     3     1
天津       1     2     4     0
广州       0     3     3     0
成都       1     1     3     1
杭州       1     4     0     2
武汉       1     6     1     1
深圳       1     3     4     0
苏州       3     1     3     1
西安       2     2     3     2
郑州       1     2     1     2
重庆       1     0     0     0
长沙       6     1     0     0
青岛       2     2     1     0
透视表: 销售人员      刘洋      周涛      孙丽     张伟      李明      王芳     赵强      陈静
产品类别
办公设备   98553       0   15135  61604  196920   49535      0  139308
电子产品  105126  220784  103839  49608   51582  142751  37923   41025
电脑配件    4646   16965   23091   5098    1770    2416  23939   29574
网络设备       0    9474   20703      0    1512   12894  24343    4573
宽表转长表:   姓名  月份  数值
0  甲  一月  10
1  乙  一月  20
2  甲  二月  15
3  乙  二月  25


也许您对下面的内容还感兴趣: