Pandas按多列Groupby调用cumcount报错,求解决方案
解决方案:Pandas Groupby多列分组报错处理
问题出在你调用groupby的方式不对——多列分组时必须把列名放在一个列表里。你直接传了两个独立参数'CustNo'和'DATE',第二个参数会被pandas当成axis参数解析,但axis只接受0(行)或1(列),这才触发了找不到名为DATE的轴的错误。
简单修改代码即可解决:
df['g'] = dfc.groupby(['CustNo', 'DATE']).cumcount()
另外要注意:你的数据集字段是cust_number和date,但代码里用的是CustNo和DATE,必须保证列名大小写、拼写和数据集完全一致,不然会出现找不到列的新错误。比如实际列名是小写的话,代码要改成:
df['g'] = dfc.groupby(['cust_number', 'date']).cumcount()
不需要额外指定axis参数,默认的axis=0(按行分组)完全符合你统计同一客户单日多次申请序号的需求(cumcount()会从0开始为每组内的行计数)。
内容的提问来源于stack exchange,提问作者Matthew Freeman
相关产品推荐
相关产品推荐

