为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用python中的pandas获取所有重复项的列表?

如何使用python中的pandas获取所有重复项的列表?

jeck猫 2019-10-25 10:37:36
我列出了可能存在一些出口问题的物品。我想获取重复项的列表,以便可以手动比较它们。当我尝试使用熊猫重复方法时,它仅返回第一个重复。有没有办法获取所有重复项,而不仅仅是第一个?我的数据集的一个小部分看起来像这样:ID,ENROLLMENT_DATE,TRAINER_MANAGING,TRAINER_OPERATOR,FIRST_VISIT_DATE1536D,12-Feb-12,"06DA1B3-Lebanon NH",,15-Feb-12F15D,18-May-12,"06405B2-Lebanon NH",,25-Jul-128096,8-Aug-12,"0643D38-Hanover NH","0643D38-Hanover NH",25-Jun-12A036,1-Apr-12,"06CB8CF-Hanover NH","06CB8CF-Hanover NH",9-Aug-128944,19-Feb-12,"06D26AD-Hanover NH",,4-Feb-121004E,8-Jun-12,"06388B2-Lebanon NH",,24-Dec-1111795,3-Jul-12,"0649597-White River VT","0649597-White River VT",30-Mar-1230D7,11-Nov-12,"06D95A3-Hanover NH","06D95A3-Hanover NH",30-Nov-113AE2,21-Feb-12,"06405B2-Lebanon NH",,26-Oct-12B0FE,17-Feb-12,"06D1B9D-Hartland VT",,16-Feb-12127A1,11-Dec-11,"064456E-Hanover NH","064456E-Hanover NH",11-Nov-12161FF,20-Feb-12,"0643D38-Hanover NH","0643D38-Hanover NH",3-Jul-12A036,30-Nov-11,"063B208-Randolph VT","063B208-Randolph VT",475B,25-Sep-12,"06D26AD-Hanover NH",,5-Nov-12151A3,7-Mar-12,"06388B2-Lebanon NH",,16-Nov-12CA62,3-Jan-12,,,D31B,18-Dec-11,"06405B2-Lebanon NH",,9-Jan-1220F5,8-Jul-12,"0669C50-Randolph VT",,3-Feb-128096,19-Dec-11,"0649597-White River VT","0649597-White River VT",9-Apr-1214E48,1-Aug-12,"06D3206-Hanover NH",,177F8,20-Aug-12,"063B208-Randolph VT","063B208-Randolph VT",5-May-12553E,11-Oct-12,"06D95A3-Hanover NH","06D95A3-Hanover NH",8-Mar-1212D5F,18-Jul-12,"0649597-White River VT","0649597-White River VT",2-Nov-12C6DC,13-Apr-12,"06388B2-Lebanon NH",,11795,27-Feb-12,"0643D38-Hanover NH","0643D38-Hanover NH",19-Jun-1217B43,11-Aug-12,,,22-Oct-12A036,11-Aug-12,"06D3206-Hanover NH",,19-Jun-12我的代码当前如下所示:df_bigdata_duplicates = df_bigdata[df_bigdata.duplicated(cols='ID')]那里有几个重复的物品。但是,当我使用上面的代码时,我只会得到第一项。在API参考中,我看到了如何获得最后一个项目,但是我希望拥有所有这些项目,因此我可以目视检查它们,以查看为什么我得到了差异。因此,在此示例中,我想获取所有三个A036条目以及11795条目和任何其他重复的条目,而不是仅第一个。非常感谢您的帮助。
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

使用Pandas版本0.17时,您可以在重复函数中设置“ keep = False”,以获取所有重复项。


In [1]: import pandas as pd


In [2]: df = pd.DataFrame(['a','b','c','d','a','b'])


In [3]: df

Out[3]: 

       0

    0  a

    1  b

    2  c

    3  d

    4  a

    5  b


In [4]: df[df.duplicated(keep=False)]

Out[4]: 

       0

    0  a

    1  b

    4  a

    5  b


查看完整回答
反对 回复 2019-10-25
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

使用按元素进行逻辑运算或将pandas复制方法的take_last参数设置为True和False,可以从数据框中获取一个包含所有重复项的集合。


df_bigdata_duplicates = 

    df_bigdata[df_bigdata.duplicated(cols='ID', take_last=False) |

               df_bigdata.duplicated(cols='ID', take_last=True)

              ]


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 1927 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信