Python 熊猫:重复列,无法删除它们

Python 熊猫:重复列,无法删除它们,python,pandas,Python,Pandas,我,我有一个奇怪的,有点令人沮丧的问题 当我发出以下命令时:gpd\u cinc\u merged.columns 我得到以下输出: Index(['level_0', 'index', 'SU_gdppc', 'SU_gdppcl', 'year', 'US_gdppc', 'US_gdppcl', 'year', 'index', 'SU_milex', 'SU_cinc', 'US_milex', 'US_cinc', 'year', 'year'],

我,我有一个奇怪的,有点令人沮丧的问题

当我发出以下命令时:
gpd\u cinc\u merged.columns

我得到以下输出:

Index(['level_0', 'index', 'SU_gdppc', 'SU_gdppcl', 'year', 'US_gdppc',
       'US_gdppcl', 'year', 'index', 'SU_milex', 'SU_cinc', 'US_milex',
       'US_cinc', 'year', 'year'],
      dtype='object')
您可能会注意到存在多个
year
列。它们都有相同的值,我想删除除一个以外的所有值。

gpd_cinc_merged.drop(gpd_cinc_merged.columns[[7]], axis=1, inplace=True)
但是,我不能这样做

gpd_cinc_merged.drop('year', axis=1, inplace=True)
移除所有这些,但我需要其中一个留在那里。 所以我计算了他们的索引号,所以我只删除了一个。

gpd_cinc_merged.drop(gpd_cinc_merged.columns[[7]], axis=1, inplace=True)
但是,此命令也会删除所有这些选项

gpd_cinc_merged.year 
返回一个数据帧,其中包含四列具有相同值的
year
列。但我无法在合并操作中使用该变量,因为它返回许多值

有人知道如何将这4个重复列减少为1个吗?

使用反转
mask
by
~
进行布尔掩码,然后使用
loc
进行筛选,然后再按列筛选:

c = pd.Index(['level_0', 'index', 'SU_gdppc', 'SU_gdppcl', 'year', 'US_gdppc',
       'US_gdppcl', 'year', 'index', 'SU_milex', 'SU_cinc', 'US_milex',
       'US_cinc', 'year', 'year'])

df = pd.DataFrame(columns=c)

df = df.loc[:, ~df.columns.duplicated()]
print (df)
Empty DataFrame
Columns: [level_0, index, SU_gdppc, SU_gdppcl, year, US_gdppc, 
          US_gdppcl, SU_milex, SU_cinc, US_milex, US_cinc]
Index: []
详细信息

print (~df.columns.duplicated())
[ True  True  True  True  True  True  True False False  True  True  True
  True False False]

成功了!谢谢你的回复!