pandas dataframe groupby rolling后报cannot handle a non-unique multi-index! 解决办法

mf是一个dataframe,amt是成交额,code是代号,计算近5日的总成交额

下面的代码会报cannot handle a non-unique multi-index! 

chatgpt、文心一言、讯飞星火都解决不了

mf["amt_sum_5"] = mf.groupby(by="code")['amt'].rolling(5).apply(sum)

解决办法:

找一个小的dataframe跑一下这个逻辑,发现apply返回的结果是一个multiindex的dataframe,所以无法被赋值到amt_sum_5这个新列上。改成下面这个就好了:

mf["amt_sum_5"] = mf.groupby(by="code")['amt'].rolling(5).apply(sum).values

看来,AI还需要再改进~

你可能感兴趣的:(统计,数据挖掘,pandas,机器学习,数据挖掘)