📅  最后修改于: 2023-12-03 15:08:43.933000             🧑  作者: Mango
在 Pandas 中,使用 DataFrame 对象可以方便地进行数据处理和数据分析。在实际工作中,我们经常需要去除重复的数据,包括重复行和重复列。本文将介绍如何在 Pandas DataFrame 中查找和删除重复列。
我们可以使用 DataFrame.transpose()
方法将数据框的行和列互换,然后使用 DataFrame.duplicated()
方法查找重复的行,最后再将数据框的行和列互换回来,即可得到重复的列。
import pandas as pd
# 创建一个有重复列的 DataFrame 对象
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12],
'D': [1, 2, 3, 4],
'E': [13, 14, 15, 16],
})
# 将行和列互换
df_transpose = df.transpose()
# 查找重复列
duplicated_columns = df_transpose.duplicated()
# 将列名和重复列名进行匹配
duplicated_column_names = df_transpose.loc[duplicated_columns].index.tolist()
# 将列名转换成原始的列名
original_column_names = [df.columns[df.columns.get_loc(i)] for i in duplicated_column_names]
# 输出重复列的列名
print('重复列的列名:', original_column_names)
运行以上代码,输出结果为:
重复列的列名: ['D']
其中,重复的列为 'D'。
我们可以使用 DataFrame.drop()
方法删除重复的列。
# 删除重复列
df = df.drop(columns=duplicated_column_names)
# 输出删除重复列后的 DataFrame
print(df)
运行以上代码,输出结果为:
A B C E
0 1 5 9 13
1 2 6 10 14
2 3 7 11 15
3 4 8 12 16
其中,重复的列 'D' 已经被删除。