Python 熊猫:在groupby'中删除重复项;日期';

Python 熊猫:在groupby'中删除重复项;日期';,python,pandas,duplicates,unique,pandas-groupby,Python,Pandas,Duplicates,Unique,Pandas Groupby,在下面的数据框中,我想消除重复的cid值,以便df.groupby('date').cid.size()的输出与df.groupby('date').cid.nunique()的输出匹配 我已经研究过这个问题,但它似乎没有一个解决问题的可靠办法 df = pd.read_csv('https://raw.githubusercontent.com/108michael/ms_thesis/master/crsp.dime.mpl.df') df.groupby('date').cid.size

在下面的数据框中,我想消除重复的
cid
值,以便
df.groupby('date').cid.size()的输出与
df.groupby('date').cid.nunique()的输出匹配

我已经研究过这个问题,但它似乎没有一个解决问题的可靠办法

df = pd.read_csv('https://raw.githubusercontent.com/108michael/ms_thesis/master/crsp.dime.mpl.df')

df.groupby('date').cid.size()

date
2005       7
2006     237
2007    3610
2008    1318
2009    2664
2010     997
2011    6390
2012    2904
2013    7875
2014    3979

df.groupby('date').cid.nunique()

date
2005      3
2006     10
2007    227
2008     52
2009    142
2010     57
2011    219
2012     99
2013    238
2014    146
Name: cid, dtype: int64
我尝试过的事情:

  • df.groupby([df['date']]).drop_duplicates(cols='cid')
    给出此错误:
    AttributeError:无法访问'DataFrameGroupBy'对象的可调用属性'drop_duplicates',请尝试使用'apply'方法
  • df.groupby(('date').drop\u duplicates('cid'))
    给出此错误:
    AttributeError:'str'对象没有属性'drop\u duplicates'

  • 不需要groupby根据几列删除重复项,您可以指定一个子集:

    df2 = df.drop_duplicates(["date", "cid"])
    df2.groupby('date').cid.size()
    Out[99]: 
    date
    2005      3
    2006     10
    2007    227
    2008     52
    2009    142
    2010     57
    2011    219
    2012     99
    2013    238
    2014    146
    dtype: int64
    

    谢谢你的评论!是的,成功了!我想知道一些类型的子集。您的第二个属性错误只是由执行以下命令引起的:
    ('date')。删除重复项('cid')
    ,这与熊猫无关。事实上,错误消息告诉您,
    'date'
    ,一个
    str
    类型对象,没有名为
    drop\u duplicates
    的属性。