【发布时间】:2019-07-30 15:51:49
【问题描述】:
我有以下熊猫数据框:
import pandas as pd
data = dict(store=['A', 'B', 'B'], color=['red', 'black', 'black'], size=['small', 'medium', 'small'], quantity=[2, 4, 1])
df = pd.DataFrame(data)
看起来像这样:
store color size quantity
0 A red small 2
1 B black medium 4
2 B black small 1
我想要做的是pivot 函数来创建一个新的数据框,该数据框使用store 列作为标题,color 的每个唯一行值的quantity 值和size 列。所以它应该是这样的:
A B
black 0 5
red 2 0
small 2 1
medium 0 4
这可以吗?像df.pivot(columns='store') 这样的东西似乎是要走的路……
【问题讨论】:
-
melt然后枢轴:df.melt(['store', 'quantity']).pivot_table(index='value', columns='store', values='quantity', aggfunc='sum', fill_value=0) -
这是枢轴问题,您可以尝试搜索如何使用 for 循环进行枢轴,例如 pd.concat([df.pivot() for x in ['store', 'quantity'])])跨度>
-
@anky_91 很好,我的朋友,你可以在这里保留你的答案:-)
标签: python pandas pivot transform