gpt4 book ai didi

python - 透视 Pandas 数据并添加列

转载 作者:太空宇宙 更新时间:2023-11-04 05:39:49 28 4
gpt4 key购买 nike

我正在尝试将求和列添加到透视数据框,但不断收到数据解析错误。

mydata = [{'amount': 3200, 'close_date':'2013-03-31', 'customer': 'Customer 1',},
{'amount': 1430, 'close_date':'2013-11-30', 'customer': 'Customer 2',},
{'amount': 4320, 'close_date':'2014-03-31', 'customer': 'Customer 3',},
{'amount': 2340, 'close_date':'2015-05-18', 'customer': 'Customer 4',},
{'amount': 4320, 'close_date':'2015-06-29', 'customer': 'Customer 5',},]
df = pd.DataFrame(mydata)
>>> df.dtypes
amount int64
close_date object
customer object
dtype: object

我转换为日期,然后显示为季度

df.close_date = pd.to_datetime(df.close_date)
>>> df.dtypes
amount int64
close_date datetime64[ns]
customer object
dtype: object

df.close_date = df.close_date.dt.to_period('Q')

然后我转动:

pivot = pd.pivot_table(df,index='customer',columns='close_date')

最后,我想对行和列求和,但我的这段代码似乎不会添加列...

pivot['sum'] = pivot.sum(axis=1)

我做错了什么?

最佳答案

您可以将边距设置为 True。

df['close_date'] = pd.to_datetime([cd.to_period('Q') for cd in df.close_date])
pivot = pd.pivot_table(df,index='customer',columns='close_date', margins=True)

>>> pivot
amount
close_date 172 175 176 181 All
customer
Customer 1 3200 NaN NaN NaN 3200
Customer 2 NaN 1430 NaN NaN 1430
Customer 3 NaN NaN 4320 NaN 4320
Customer 4 NaN NaN NaN 2340 2340
Customer 5 NaN NaN NaN 4320 4320
All NaN NaN NaN NaN 3122

您还可以按如下方式对列求和:

pivot = pd.pivot_table(df,index='customer',columns='close_date')
pivot['sum'] = pivot.sum(axis=1)

>>> pivot
amount sum
close_date 172 175 176 181
customer
Customer 1 3200 NaN NaN NaN 3200
Customer 2 NaN 1430 NaN NaN 1430
Customer 3 NaN NaN 4320 NaN 4320
Customer 4 NaN NaN NaN 2340 2340
Customer 5 NaN NaN NaN 4320 4320

这就是对行求和的方法:

pivot.ix['Total'] = pivot.sum()

>>> pivot
amount
close_date 2013Q1 2013Q4 2014Q1 2015Q2
customer
Customer 1 3200 NaN NaN NaN
Customer 2 NaN 1430 NaN NaN
Customer 3 NaN NaN 4320 NaN
Customer 4 NaN NaN NaN 2340
Customer 5 NaN NaN NaN 4320
Total 3200 1430 4320 6660

关于python - 透视 Pandas 数据并添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34320382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com