0

我有一个包含这些列的 df:

Index(['Instrument', 'Date', 'Return on Invst Cap', 'Date',
       'Book Value Per Share, Total Equity', 'Date',
       'Earnings Per Share Reported - Actual', 'Date',
       'Revenue from Business Activities - Total', 'Date',
       'Free Cash Flow - Actual', 'Date', 'Total Long Term Debt', 'Date',
       'Profit/(Loss) - Starting Line - Cash Flow'],
      dtype='object')

有几列称为“日期”,其中一些列具有相同的值,有些则没有。

我只想保留第一个“日期”列并删除其余部分。我认为一个重要的步骤是将第一个“日期”更改为不同的名称,例如更改为“1 日期”并删除另一个“日期”列

但我未能仅重命名此列。例如,我尝试df_big5_simplified= df_big5.rename(columns={1: '1 Date'})按列索引位置重命名

但是生成的df是完全一样的...

我也尝试过这种方法:

columns=pd.Index(['Date', 'Instrument', 'Return on Invst Cap',
       'Book Value Per Share, Total Equity',
       'Earnings Per Share Reported - Actual',
       'Revenue from Business Activities - Total', 'Free Cash Flow - Actual',
       'Total Long Term Debt', 'Profit/(Loss) - Starting Line - Cash Flow'], name='item')

df_big5_simplifed=df_big5.reindex(columns=columns)

然后我有这个错误:

ValueError: cannot reindex from a duplicate axis

有任何想法吗?我可以有 50 个称为相同的列,并且只想保留第一个。

4

1 回答 1

1

您可以设置所有列名称:

df = df.set_axis(['Instrument', 'Date', 'Return on Invst Cap', 'Date2',
       'Book Value Per Share, Total Equity', 'Date3',
       'Earnings Per Share Reported - Actual', 'Date4',
       'Revenue from Business Activities - Total', 'Date5',
       'Free Cash Flow - Actual', 'Date6', 'Total Long Term Debt', 'Date7',
       'Profit/(Loss) - Starting Line - Cash Flow'], axis=1, inplace=False)
于 2020-09-11T08:54:53.080 回答