Индекс скользящей суммы за дату - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть следующий код

data = {'date': ['2014-05-05', '2014-05-01', '2014-05-02',
                 '2014-05-02', '2014-05-02', '2014-05-02',
                 '2014-05-03', '2014-05-03', '2014-05-04',
                 '2014-05-04'],
        'battle_deaths': [34, 25, 26, 15, 15, 14, 26, 25, 62, 41],
        'group': [1, 2, 3, 2, 2, 3, 2, 1, 3, 1]}
df = pd.DataFrame(data, columns=['date', 'battle_deaths', 'group' ''])

df = df.set_index('date')
df.groupby('group').rolling(2).sum()

Какие выходы

                 battle_deaths  group
group date                            
1     2014-05-05            NaN    NaN
      2014-05-03           59.0    2.0
      2014-05-04           66.0    2.0
2     2014-05-01            NaN    NaN
      2014-05-02           40.0    4.0
      2014-05-02           30.0    4.0
      2014-05-03           41.0    4.0
3     2014-05-02            NaN    NaN
      2014-05-02           40.0    6.0
      2014-05-04           76.0    6.0

Но поскольку индекс является датой, я бы ожидал, что для первой группы столбец battle_deaths будет иметь значение NaN для даты 2014-05-03. Другими словами, я хотел бы сделать промежуточную сумму в каждой группе, отсортированной по date. Как мне этого добиться?

Ответы [ 2 ]

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

Этот фрейм данных нужно отсортировать, вот как я бы это сделал.

df.sort_index().groupby('group').rolling(2).sum()
0 голосов
/ 14 ноября 2018

Я думаю, нужно конвертировать даты в даты и время и сортировать по sort_values:

df['date'] = pd.to_datetime(df['date'])
df = df.sort_values('date').set_index('date')
df = df.groupby('group').rolling(2).sum()

                  battle_deaths  group
group date                            
1     2014-05-03            NaN    NaN
      2014-05-04           66.0    2.0
      2014-05-05           75.0    2.0
2     2014-05-01            NaN    NaN
      2014-05-02           40.0    4.0
      2014-05-02           30.0    4.0
      2014-05-03           41.0    4.0
3     2014-05-02            NaN    NaN
      2014-05-02           40.0    6.0
      2014-05-04           76.0    6.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...