Как вернуть CUMSUM Дней в Даты - Python

Как мне вернуть количество дней CumSum за предоставленные даты?

import pandas as pd
df = pd.DataFrame({
    'date': [񟭓-01-01',񟭓-01-03',񟭓-01-05',
             񟭓-01-06',񟭓-01-07',񟭓-01-08',
             񟭓-01-09',񟭓-01-12',񟭓-01-013']})

df['date'].cumsum() здесь не работает.

Желаемый фрейм данных:

          date  Cumsum days
0   2019-01-01            0
1   2019-01-03            2
2   2019-01-05            4
3   2019-01-06            5
4   2019-01-07            6
5   2019-01-08            7
6   2019-01-09            8
7   2019-01-12            9
8  2019-01-013           11

Всего 2 ответа


Другой способ называется diff , fillna и cumsum

df['cumsum days'] = df['date'].diff().dt.days.fillna(0).cumsum()

Out[2044]:
        date  cumsum days
0 2019-01-01          0.0
1 2019-01-03          2.0
2 2019-01-05          4.0
3 2019-01-06          5.0
4 2019-01-07          6.0
5 2019-01-08          7.0
6 2019-01-09          8.0
7 2019-01-12         11.0
8 2019-01-13         12.0

Спасибо, это должно сработать:

def generate_time_delta_column(df, time_column, date_first_online_column):
    return (df[time_column] - df[date_first_online_column]).dt.days

Есть идеи?

10000