Сбит с толку dataframe groupby.diff () - PullRequest
0 голосов
/ 01 июня 2018

Я только что прочитал этот вопрос: Как можно извлечь разницу между значениями в отдельных строках в одном и том же столбце, условно для второго столбца?

и я полностью сбит с толку ответом.Как это работает ???

Я имею в виду, когда я groupby('user') не должен ли результат, ну, группироваться по пользователю ?Независимо от того, какую функцию я использую (среднее, сумма и т. Д.), Я ожидал бы такой результат:

aa=pd.DataFrame([{'user':'F','time':0},
             {'user':'T','time':0},
            {'user':'T','time':0},
            {'user':'T','time':1},
            {'user':'B','time':1},
            {'user':'K','time':2},
            {'user':'J','time':2},
            {'user':'T','time':3},
            {'user':'J','time':4},
            {'user':'B','time':4}])
aa2=aa.groupby('user')['time'].sum()
print(aa2)

user
B    5
F    0
J    6
K    2
T    4
Name: time, dtype: int64

Как diff () вместо этого возвращает diff каждой строки с предыдущей, в каждой группе?

aa['diff']=aa.groupby('user')['time'].diff()
print(aa)
   time user  diff
0     0    F   NaN
1     0    T   NaN
2     0    T   0.0
3     1    T   1.0
4     1    B   NaN
5     2    K   NaN
6     2    J   NaN
7     3    T   2.0
8     4    J   2.0
9     4    B   3.0

И, что более важно, как результат не является уникальным списком пользовательских значений?Я нашел много ответов, которые используют groupby.diff (), но ни один из них не объясняет это подробно.Было бы чрезвычайно полезно для меня и, надеюсь, для других, понять механизм, стоящий за этим.Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...