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
我在网上搜索找不到答案。假设我有一个 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