【发布时间】:2017-10-08 17:47:47
【问题描述】:
我有以下数据框:
payment_method_id payment_plan_days plan_list_price actual_amount_paid date
msno
YyO+tlZtAXYXoZhNr3Vg3+dfVQvrBVGO8j1mfqe4ZHc= 41 30 129 129 2015-01-01
AZtu6Wl0gPojrEQYB8Q3vBSmE2wnZ3hi1FbK1rQQ0A4= 41 30 149 149 2015-01-01
UkDFI97Qb6+s2LWcijVVv4rMAsORbVDT2wNXF0aVbns= 41 30 129 129 2015-01-02
关键是“msno”,我需要找出大多数“msno”是否在不同日期只使用一个payment_method_id。
所以我尝试按“msno”、“payment_method_id”分组,使用
transactions.groupby(['msno', 'payment_method_id']).count()
但出现错误:KeyError: 'msno'
使用其他字段进行分组可以正常工作,例如:
transactions.groupby(['payment_plan_days', 'payment_method_id']).count()
那么对于msno,我什至可以使用groupby level=0
transactions.groupby(level=0)
但我无法将包含第一列的两个级别分组。
这是transactions.columns中的样子
Index(['payment_method_id', 'payment_plan_days', 'plan_list_price',
'actual_amount_paid', 'date']
dtype='object')
有什么建议吗?
【问题讨论】:
标签: python pandas dataframe pandas-groupby