有一种解决方案。如果某些列名重复并且您希望删除它们,则适用此规则:
df = df.loc[:,~df.columns.duplicated()]
假设数据框的列是 ['alpha','beta','alpha']
df.columns.duplicated()
返回一个布尔数组:aTrue
或False
每列。如果是,False
则该列名称在该点之前是唯一的;如果是,True
则该列名称在前面已重复。例如,使用给定的示例,返回值为[False,False,True]
。
Pandas
允许使用布尔值建立索引,从而仅选择True
值。由于我们要保留不重复的列,因此需要翻转上面的布尔数组(即[True, True, False] = ~[False,False,True]
)
最后,df.loc[:,[True,True,False]]
使用上述索引功能仅选择非重复列。
:以上仅检查列名称, 而不 检查列值。