我正在使用numpy大小聚合Pandas DF,然后想要使用writer.save将结果加载到Excel中。但是我收到以下错误: NotImplementedError:使用MultiIndex写入Excel尚未实现。
我的数据看起来像这样:
agt_id unique_id
abc123 ab12345
abc123 cd23456
abc123 de34567
xyz987 ef45678
xyz987 fg56789
我的结果应该如下:
agt_id unique_id
abc123 3
xyz987 2
这是我的代码示例:
df_agtvol = df_agt.groupby('agt_id').agg({'unique_id':[np.size]})
writer = pd.ExcelWriter(outfilepath, engine='xlsxwriter')
df_agtvol.to_excel(writer, sheet_name='agt_vols')
我尝试使用以下方法重置索引:
df_agt_vol_final = df_agtvol.set_index([df_agtvol.index, 'agt_id'], inplace=True)
基于一些研究,但我得到一个完全不同的错误。
我对使用Pandas数据帧相对较新,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您不需要MultiIndex。你得到一个原因是因为np.size
被包装在一个列表中。
虽然不是explicitly documented,但Pandas
会将列表中的所有内容解释为'unique_id'
的子索引。此用例属于链接文档中“名称的嵌套字典 - >函数的dicts”案例。
所以
df_agtvol = df_agt.groupby('agt_id').agg({'unique_id':[np.size]})
应该是
df_agtvol = df_agt.groupby('agt_id').agg({'unique_id': np.size})
这仍然过于复杂,您可以通过调用count
方法获得相同的结果。
df_agtvol = df_agt.groupby('agt_id').count()