【问题标题】:Pandas ValueError: cannot reindex from a duplicate axis when trying to add a new columnPandas ValueError:尝试添加新列时无法从重复轴重新索引
【发布时间】:2021-09-13 09:42:01
【问题描述】:

我有这些数据:

          Inv Dt        Due Dt
22        2020-10-31    2020-11-15
181       2020-10-01    2020-11-15
182       2020-10-01    2020-11-15
1845      2020-10-30    2020-11-14
2185      2020-10-14    2020-10-16
... ... ...
3080858   2020-09-01    2020-09-01
3080900   2020-09-30    2020-10-08
3081015   2020-09-19    2020-12-18
3081022   2020-09-17    2020-09-25
3081051   2020-09-03    2020-09-03

当我运行这个时:

rep_date = pd.to_datetime('2021-08-31')
(comp_data.loc[(comp_data['Inv Dt'] <= rep_date) & (comp_data['Due Dt'] > rep_date), 'Due Dt'] - rep_date).dt.days

不出所料,我得到了这个系列:

4766385     68
4766388     68
81077        6
81081        6
81082        6
            ..
12747495    29
12747496    29
12747595    40
12747596    40
12748738    82

但是当我尝试使用此代码将包含该系列的列添加到我的数据中时:

comp_data['Aug-2021 DPO'] = (comp_data.loc[(comp_data['Inv Dt'] <= rep_date) & (comp_data['Due Dt'] > rep_date), 'Due Dt'] - rep_date).dt.days

我收到此错误:Pandas ValueError: cannot reindex from a duplicate axis

【问题讨论】:

    标签: python dataframe


    【解决方案1】:

    原因是你得到了重复的索引,所以我建议你把索引设为一列并添加一个新的索引:

    comp_data = comp_data.reset_index()
    comp_data['Aug-2021 DPO'] = (comp_data.loc[(comp_data['Inv Dt'] <= rep_date) & (comp_data['Due Dt'] > rep_date), 'Due Dt'] - rep_date).dt.days
    

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 2018-02-02
      • 1970-01-01
      • 2015-02-26
      • 2016-05-17
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 2020-02-23
      相关资源
      最近更新 更多