【发布时间】:2018-07-22 09:42:38
【问题描述】:
我有一个 Pandas 交易数据框:
transactions.head():
Amount Date of Transaction Description \
0 39.95 2017-03-30 Fake_Transaction_One
1 2.39 2017-04-01 Fake_Transaction_Two
2 8.03 2017-04-01 Fake_Transaction_Three
3 34.31 2017-04-01 Fake_Transaction_Four
4 10.56 2017-04-03 Fake_Transaction_Five
Purchase_Type year_month
0 Miscellaneous 2017-03
1 tool_expense 2017-04
2 food_and_domestic 2017-04
3 food_and_domestic 2017-04
4 food_and_domestic 2017-04
我在这个 DataFrame 上运行了一个 groupby 命令:
grouped_transactions = transactions.groupby(['Purchase_Type','year_month'])['Amount'].sum()
这会产生一个 groupby 对象:
Purchase_Type year_month
tool_expense 2017-04 72.49
Calendar_Event 2017-08 3.94
2017-12 23.92
2018-02 42.91
2018-03 10.91
我想对此运行 groupby 命令,例如
grouped_transactions.groups.keys()
但是我不能,因为对象不是 groupby 对象,而是一个系列:
In: type(grouped_transactions)
Out: pandas.core.series.Series
查看 grouped_transactions 似乎是一个 groupby 对象,而不是一个系列。此外,它被创建但在 Pandas DataFrame 上运行 .groupby 方法。因此,我不确定为什么它是一个系列。
我的理解或方法有什么错误?
【问题讨论】:
-
如果想使用 groupby 对象,需要
g = transactions.groupby(['Purchase_Type','year_month'])['Amount'],但是使用 groupby 对象的原因是什么?预期输出是什么? -
如果你想要groupby对象,为什么要立即在它后面加上
['Amount'].sum()?你正在扔掉你想要的东西。
标签: python pandas dataframe pandas-groupby