Ich habe folgenden Datenrahmen:Pandas: drop Duplikate in groupby ‚date‘
url='https://raw.githubusercontent.com/108michael/ms_thesis/master/crsp.dime.mpl.df'
df=pd.read_csv(url)
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
Ich mag würde die doppelten cid
Werte, so dass die Ausgabe von df.groupby('date').cid.size()
entspricht die Ausgabe von df.groupby('date').cid.nunique()
zu beseitigen. Ich habe mir dieses post angesehen, aber es scheint keine feste Lösung für das Problem zu haben.
Ich habe versucht, die folgenden:
df.groupby([df['date']]).drop_duplicates(cols='cid')
Aber ich bekomme diese Fehlermeldung:
AttributeError: Cannot access callable attribute 'drop_duplicates' of 'DataFrameGroupBy' objects, try using the 'apply' method
und diese:
df.groupby(('date').drop_duplicates('cid'))
Aber ich bekomme diese Fehlermeldung:
AttributeError: 'str' object has no attribute 'drop_duplicates'
Hat jemand eine Idee dazu?
Danke für die Kommentare! Ja, das hat funktioniert! Ich wundere mich über eine Art von Teilmenge. –
Gern geschehen. Dies funktioniert hauptsächlich deshalb, weil die Gruppierung nach Datum und die Suche nach Zeilen mit derselben CID in jeder Gruppe dasselbe ist wie die Suche nach Zeilen im Hauptdatenframe, die dasselbe Datum und dieselbe CID haben. – ayhan