Строка доступа с предыдущей неуникальной датой - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть фрейм данных, который выглядит следующим образом:

       Date        Module      Lines  
0      2017-07-01  Engine      68312
1      2017-07-01  Game        20322
2      2017-07-01  Editor      34433
3      2017-07-02  Engine      68432
4      2017-07-02  Game        21401
5      2017-07-02  Editor      34431

Я хочу создать столбец, который будет подсчитывать разницу в строках между конкретным днем ​​и предыдущим днем.Таким образом, для модуля двигателя разница будет 120 на 2017-02-02.

Я рассматривал использование столбца сдвига для чего-то вроде:

data["Lines Delta"] = data["Lines"] - data["Lines"].shift(1, "D")

Но это не работает, и я думаю, что это потому, что дата не является индексом.Я не могу сделать это индексом, потому что он не уникален.

Я довольно незнаком с Пандами, поэтому я не уверен, как еще сделать это, кроме как вручную в цикле, что я бы не хотелкак это было бы довольно медленно.

1 Ответ

0 голосов
/ 07 декабря 2018

IIUC, вы просто ищете groupby и diff, если у вас есть запись для каждого Module для каждой даты:

# if your dates aren't datetime to start with, uncomment:
# df['Date'] = pd.to_datetime(df['Date'])
# and if your dates aren't sorted:
# df.sort_values('Date', inplace=True)

df['delta'] = df.groupby('Module').Lines.diff()
>>> df
        Date  Module  Lines   delta
0 2017-07-01  Engine  68312     NaN
1 2017-07-01    Game  20322     NaN
2 2017-07-01  Editor  34433     NaN
3 2017-07-02  Engine  68432   120.0
4 2017-07-02    Game  21401  1079.0
5 2017-07-02  Editor  34431    -2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...