У меня есть dataframe «ф.р.», который выглядит следующим образом:Python Панды Dataframe GroupBy Размер, основанный на состоянии
id date1 date2
1 11/1/2016 11/1/2016
1 11/1/2016 11/2/2016
1 11/1/2016 11/1/2016
1 11/1/2016 11/2/2016
1 11/2/2016 11/2/2016
2 11/1/2016 11/1/2016
2 11/1/2016 11/2/2016
2 11/1/2016 11/1/2016
2 11/2/2016 11/2/2016
2 11/2/2016 11/2/2016
То, что я хотел бы сделать, это GroupBy идентификатор, а затем получить размер для каждого идентификатора где date1 = date2. Результат должен выглядеть следующим образом:
id samedate count
1 11/1/2016 2
1 11/2/2016 1
2 11/1/2016 2
2 11/2/2016 2
Я попытался это:
gb=df.groupby(id').apply(lambda x: x[x.date1== x.date2]['date1'].size())
И получить эту ошибку:
TypeError: 'int' object is not callable
Вы можете, конечно, флаг каждый экземпляр где date1 и date2 равны , затем подсчитайте эти флаги для каждого идентификатора по каждому образцу, но я должен поверить, что для этого есть опция groupby.
Спасибо за таймингов. Это лучший способ сделать это. – Zero
Спасибо за ответ, первая идея была очень похожа на ваш ответ. – jezrael
Спасибо. Отлично! – clg4