【发布时间】:2017-07-10 17:26:28
【问题描述】:
我有一个表单的旋转数据框。
Quantity Result
Alpha A B C A B C
Order
1 3.0 0.0 0.0 Best None None
2 0.0 6.0 4.0 None Good Good
3 3.0 0.0 0.0 Average None None
并且我正在尝试创建另一个名为 CumulativeQty 的主要列,其中包含 3 列,我希望它们成为主要列 Quantity 中相应 3 列的 cumsum()。如果不单独指定次要列,我将如何处理?我试过了
p['CumulativeQty'] = p['Quantity'].cumsum(axis=1)
但这抱怨 ValueError: Wrong number of items passed 3, placement 暗示 1.
想要的结果是
CumulativeQty
Alpha A B C
Order
1 3.0 0.0 0.0
2 3.0 6.0 4.0
3 6.0 6.0 4.0
以下是如何获取起始透视数据框。
df = pd.DataFrame(data=[[1, "A", 3, "Best"], [2, "C", 4, "Good"], [2, "B", 6, "Good"], [3, "A", 3, "Average"]],
columns=["Order", "Alpha", "Quantity", "Result"])
p = df.pivot(index="Order", columns="Alpha")
p['Quantity'] = p['Quantity'].fillna(0)
【问题讨论】:
标签: python pandas pivot-table cumsum