我是一个有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:
我希望删除A和B都是唯一的行,即只保留第1行和第2行。
我尝试了以下方法:
但是我只得到了第二行,因为0、1和3已经在唯一值里了!
我遇到了一个看似简单的问题:如何在pandas数据框中删除唯一的行。基本上,与drop_duplicates()
相反。
假设这是我的数据:
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
我希望删除A和B都是唯一的行,即只保留第1行和第2行。
我尝试了以下方法:
# Load Dataframe
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
uniques = df[['A', 'B']].drop_duplicates()
duplicates = df[~df.index.isin(uniques.index)]
但是我只得到了第二行,因为0、1和3已经在唯一值里了!
df = df[~df.fillna('').duplicated(subset=['A','B'], keep=False)]
应该可以解决问题。但是我没有你的真实数据,所以很难回答。 - jezraeldf[~df.duplicated(subset=['A','B'], keep=False)]
和df[df.groupby(['A', 'B'])['A'].transform('size') == 1]
都没有返回任何结果(这两种方法在示例中是有效的)。 - toto_tico