Pandas 删除具有特定列名的重复列名

Pandas Delete Duplicate Col Names with Specific Col Name

我在网上搜索找不到答案。假设我有一个 df1,看起来像这样,带有以下列名称,我不能像大多数在线答案所建议的那样只对所有重复的列名称使用 drop。

index   year   season   1      2      3     year   season   1      2      3
0       1991   winter   7.1    8.3    9.0   1991   spring   0.5    7.2    1.5
1       1992   winter   4.2    5.1    8.2   1991   spring   2.9    6.2    8.1

但是,我需要列名看起来像这样 dropping/deleting “年”的后续列名,但保留“1,2,3”和 'season' 的重复列名最终的新 df2 看起来像这样:

index   year   season   1      2      3     season   1      2      3
0       1991   winter   7.1    8.3    9.0   spring   0.5    7.2    1.5
1       1992   winter   4.2    5.1    8.2   spring   2.9    6.2    8.1

谢谢,

你的情况

df.loc[:,(df.groupby(level=0,axis=1).cumcount().eq(0)) | (df.columns!='year')]
Out[188]: 
   index  year  season    1    2    3  season    1    2    3
0      0  1991  winter  7.1  8.3  9.0  spring  0.5  7.2  1.5
1      1  1992  winter  4.2  5.1  8.2  spring  2.9  6.2  8.1