【发布时间】:2021-04-13 20:36:34
【问题描述】:
我有 df 和 df_pivot 以及以下代码: 将熊猫导入为 pd 将 numpy 导入为 np
df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
"bar", "bar", "bar", "bar"],
"B": ["one", "one", "one", "two", "two",
"one", "one", "two", "two"],
"Year": [2019, 2019, 2019, 2019,
2019, 2019, 2020, 2020,
2020],
"Month": ["01", "02", "03", "04", "05", "06", "01", "02", "03"],
"Values": [2, 4, 5, 5, 6, 6, 8, 9, 9]})
df_pivot = pd.pivot_table(df, values='Values', index=['A', 'B'],
columns=['Year','Month'], aggfunc=np.sum, fill_value=0)
df_pivot 如下所示:
Year 2019 2020
Month 01 02 03 04 05 06 01 02 03
A B
bar one 0 0 0 0 0 6 8 0 0
two 0 0 0 0 0 0 0 9 9
foo one 2 4 5 0 0 0 0 0 0
two 0 0 0 5 6 0 0 0 0
现在我要做的基本上是在这个 df 中添加三列: 2019财年、2019年初至今、2020年初至今
2019FY 列应该是“2019”下所有值的总和
2019YTD 列应该是定义了期间的“2019”下所有值的总和,即如果期间定义为 04,则 2019YTD 应该对 01/02/03/04 下的 2019 列求和
2020YTD 列应该是“2020”下所有值的总和,
输出表应如下所示:
Year 2019 2019FY 2019YTD 2020 2020YTD
Month 01 02 03 04 05 06 01 02 03
A B
bar one 0 0 0 0 0 6 6 0 8 0 0 8
two 0 0 0 0 0 0 0 0 0 9 9 18
foo one 2 4 5 0 0 0 11 11 0 0 0 0
two 0 0 0 5 6 0 11 5 0 0 0 0
基本上我想知道如何用给定的“月份”对列进行求和,因为从这里我可以自己创建 2019FY/2019YTD/2020YTD,此外,将它们添加到数据透视表的特定插槽中也很重要( 2019年末数据和2020年末数据)。
可行吗?
我到处寻找,但找不到示例。
感谢帮助
谢谢 帕维尔
【问题讨论】:
标签: python pandas pivot-table