📜  删除重复列 python 数据框 - Python (1)

📅  最后修改于: 2023-12-03 14:50:21.253000             🧑  作者: Mango

删除重复列 python 数据框

在处理数据时,经常会出现重复的列,占用内存和计算时间,还可能引起不必要的错误。本文将介绍一些方法来删除重复的列。

1. 使用pandas库
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表示列名未重复。

2. 使用numpy库
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数组表示。

3. 使用dict.fromkeys()
# 创建数据框
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()方法选择所有列,并在转换为数据框后删除重复列。