查找和删除 Pandas 数据框架中的重复列可以通过以下步骤完成:
查找重复列
- 通过 Pandas 的
duplicated()
方法检查数据框架中的重复列,该方法会返回一个布尔类型的数据框架,其中True
表示出现了重复列。例如:
import pandas as pd
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [1, 2, 3], 'col4': [7, 8, 9]})
# 检查重复列
print(df.duplicated()) # 输出:False, False, False, False
上述代码中,数据框架 df
包含四列,其中前三列的数值两两相同。duplicated()
方法返回的布尔类型数据框架中,前三列对应的值都为 False
,表明不存在重复列。
- 可以通过
duplicated()
方法的keep
参数来指定保留哪个重复列。例如,保留第一个出现的重复列:
# 保留第一个出现的重复列
print(df.duplicated(keep='first')) # 输出:False, False, True, False
上述代码中,参数 keep='first'
表示保留第一个出现的重复列,因此第一个和第三个列的返回值为 True
,对应的是重复的 col1
和 col3
列。
删除重复列
- 通过
drop_duplicates()
方法删除数据框架中的重复列。例如,删除所有重复的列:
# 删除所有重复的列
df = df.loc[:, ~df.columns.duplicated()]
print(df) # 输出: col1 col2 col4
上述代码中,~df.columns.duplicated()
返回一个布尔类型数据框架,其中 True
表示该列是重复的。使用布尔类型数据框架对 df
进行切片,即可得到不包含重复列的数据框架。
- 可以通过
drop_duplicates()
方法的keep
参数来指定保留哪个重复列。例如,保留第一个出现的重复列:
# 保留第一个出现的重复列
df = df.loc[:, ~df.columns.duplicated(keep='first')]
print(df) # 输出: col1 col2 col4
上述代码中,duplicated(keep='first')
返回一个布尔类型数据框架,其中保留第一个出现的重复列。使用同样的方式对数据框架进行切片,即可得到不包含重复列(保留第一个出现的重复列)的数据框架。
以上就是查找和删除 Pandas 数据框架中重复列的完整攻略,包含了多种方法和详细的示例说明。