📅  最后修改于: 2023-12-03 14:50:21.253000             🧑  作者: Mango
在处理数据时,经常会出现重复的列,占用内存和计算时间,还可能引起不必要的错误。本文将介绍一些方法来删除重复的列。
import pandas as pd
# 创建数据框
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12],
'B': [4, 5, 6]})
# 删除重复列
df = df.loc[:,~df.columns.duplicated()]
print(df)
A B C D
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
pandas.DataFrame.loc
方法选择所有列并删除重复列。~df.columns.duplicated()
返回一个bool数组,其中True
表示列名未重复。
import numpy as np
# 创建数据框
df = np.array([[1, 4, 7, 10, 4],
[2, 5, 8, 11, 5],
[3, 6, 9, 12, 6]])
# 删除重复列
df = np.unique(df, axis=1)
print(df)
array([[ 1, 4, 7, 10],
[ 2, 5, 8, 11],
[ 3, 6, 9, 12]])
使用 numpy
库的 unique
方法选择所有列并删除重复列。 axis=1
参数在操作列时指定维度。
注意:使用此方法时,数据框必须用numpy数组表示。
# 创建数据框
df = {'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12],
'B': [4, 5, 6]}
# 删除重复列
df = dict((k, v) for k, v in zip(df, pd.DataFrame(df).T.drop_duplicates().T.columns))
print(df)
{'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]}
使用dict.fromkeys()
方法选择所有列,并在转换为数据框后删除重复列。