gpt4 book ai didi

pandas - 如何根据pandas中的列名删除重复的列数据

转载 作者:行者123 更新时间:2023-12-04 11:09:33 25 4
gpt4 key购买 nike

假设我有一张如下表

    A   B   C   B
0 0 1 2 3
1 4 5 6 7

我想删除 B 列。我尝试使用 drop_duplicate,但它似乎只适用于重复数据而不是标题。
希望有人知道如何做到这一点

谢谢

最佳答案

使用 Index.duplicated lociloc boolean indexing :

print (~df.columns.duplicated())
[ True True True False]

df = df.loc[:, ~df.columns.duplicated()]
print (df)
A B C
0 0 1 2
1 4 5 6
df = df.iloc[:, ~df.columns.duplicated()]
print (df)
A B C
0 0 1 2
1 4 5 6

计时 :
np.random.seed(123)
cols = ['A','B','C','B']
#[1000 rows x 30 columns]
df = pd.DataFrame(np.random.randint(10, size=(1000,30)),columns = np.random.choice(cols, 30))
print (df)

In [115]: %timeit (df.groupby(level=0, axis=1).first())
1000 loops, best of 3: 1.48 ms per loop

In [116]: %timeit (df.groupby(level=0, axis=1).mean())
1000 loops, best of 3: 1.58 ms per loop

In [117]: %timeit (df.iloc[:, ~df.columns.duplicated()])
1000 loops, best of 3: 338 µs per loop

In [118]: %timeit (df.loc[:, ~df.columns.duplicated()])
1000 loops, best of 3: 346 µs per loop

enter image description here

enter image description here

关于pandas - 如何根据pandas中的列名删除重复的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com