gpt4 book ai didi

python - 如何从 DataFrame 中删除在多个列中具有重复字符串的行?

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:25 26 4
gpt4 key购买 nike

我有一个包含多个列的数据框,这些列必须都是唯一的字符串才能使该特定行有效(即在我下面的示例中,我有 4 列,因此必须有 4 个唯一值)。因此,我想删除任何列中包含重复字符串的行。

感觉应该是直截了当的,但我想不通。非常感谢任何帮助!

import pandas as pd

df = pd.DataFrame([['a','b','c','d'],['a','c','d','c'],['b','a','e','g'],['a','a','c','f'],['b','c','b','d']],columns=['Pos1','Pos2','Pos3','Pos4'])


print(df)

Pos1 Pos2 Pos3 Pos4
0 a b c d
1 a c d c
2 b a e g
3 a a c f
4 b c b d


The output I want will drop row index 1 ('c' is repeated), row index 3 ('a' is repeated) and row index 4 ('b' is repeated)


Pos1 Pos2 Pos3 Pos4
0 a b c d
2 b a e g

最佳答案

通过 DataFrame.nunique 检查每行的唯一值数量并按 Series.eq 的列数进行比较(==) 按 boolean indexing 过滤:

df = df[df.nunique(axis=1).eq(len(df.columns))]
print (df)
Pos1 Pos2 Pos3 Pos4
0 a b c d
2 b a e g

关于python - 如何从 DataFrame 中删除在多个列中具有重复字符串的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55472684/

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