Сумма разницы во времени и ее разворот - pandas dataframe - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть датафрейм с двумя столбцами: unix_time и user. В нем тысячи строк, это часть его:

unix_time       user
2000000000000   A
2000000000001   A
2000000000002   B
2000000000003   B
2000000000004   B

Я хочу посчитать, сколько unix_time потратил каждый пользователь:
1. Расчет разницы во времени между строками. например: unix_time column (row2 - row1)
2. Суммируйте разницу во времени, если они принадлежат одному пользователю. например: sum(row2 - row1) and (row3 - row2)

вывод будет

time_difference_sum  user
1                    A
2                    B

Я прочитал несколько постов, таких как эти два , но все еще изо всех сил пытаюсь найти решение, потому что у меня больше ограничений. Любые предложения о том, как я могу это сделать? Спасибо заранее!

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете использовать groupby() и diff(), а затем agg() ваши результаты:

df['time_difference_sum'] = df.sort_values(['user','unix_time']).groupby('user')['unix_time'].diff()

df.groupby('user').agg({'time_difference_sum': 'sum'})

Урожайность:

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