-2

我在网上找不到答案。假设我有一个带有以下列名称的 df1 ,并且我不能像大多数在线答案所建议的那样,只对所有重复的 col 名称使用 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

但是,我需要通过删除/删除“year”的后续列名但保留“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

谢谢,

4

1 回答 1

0

在你的情况下

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
于 2021-09-20T19:45:09.427 回答