我从数据库查询返回数据,并希望在结果数据框中创建新列。我需要将一列的结果向前移动一个月以创建一个新列。
我有一个从sql查询填充的数据框,格式为:
df.dtypes
ACTIVITY_MONTH datetime64[ns]
PRODUCT_KEY object
COUNT float64
当我跑步时:
df['NEW_COUNT'] = df.groupby('PRODUCT_KEY')['COUNT'].shift(+1)
我收到此错误:
ValueError: cannot reindex from a duplicate axis
这个错误对我没有意义,我不知道如何解决它。任何帮助表示赞赏。
答案 0 :(得分:1)
错误ValueError: cannot reindex from a duplicate axis
表示在这种情况下您的索引中有重复的条目(因此,它无法分配给新列,因为pandas无法知道将重复条目的值放在何处)
要检查索引中的重复值,您可以执行以下操作:
df.index.get_duplicates()
然后去掉重复的值(如果你不需要保留原始索引),你可以做df.reset_index(drop=True)
,或者你可以在{{ignore_index=True
中使用append
1}}或concat
。