gpt4 book ai didi

python - 如何用 Pandas 选择重复的行?

转载 作者:太空狗 更新时间:2023-10-30 00:24:54 24 4
gpt4 key购买 nike

我有一个这样的数据框:

import pandas as pd
dic = {'A':[100,200,250,300],
'B':['ci','ci','po','pa'],
'C':['s','t','p','w']}
df = pd.DataFrame(dic)

我的目标是将行分隔为 2 个数据帧:

  • df1 = 包含不沿 B 列重复值的所有行(非队列行)。
  • df2 = 仅包含重复主题的行。

结果应该是这样的:

df1 =      A  B C         df2 =     A  B C
0 250 po p 0 100 ci s
1 300 pa w 1 250 ci t

注意:

  • 数据帧通常可能非常大,并且有许多值在 B 列中重复,因此答案应尽可能通用
    • 如果没有重复项,df2 应该是空的!所有的结果都应该在 df1 中

最佳答案

您可以使用 Series.duplicated使用参数 keep=False 为所有重复项创建掩码,然后 boolean indexing , ~ 反转mask:

mask = df.B.duplicated(keep=False)
print (mask)
0 True
1 True
2 False
3 False
Name: B, dtype: bool

print (df[mask])
A B C
0 100 ci s
1 200 ci t

print (df[~mask])
A B C
2 250 po p
3 300 pa w

关于python - 如何用 Pandas 选择重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042996/

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