从数据创建时间序列

Create a time series from data

我有一个数据框,其中包含有关贷款组合中违约的信息以及违约发生的时间。每个 'observation' 是一对,代表以天为单位的时间 t,以及贷款违约金额:

df['time_to_default']  #  Time from origination to default
df['default_amnt']     #  The loan amount defaulted

我想创建一个系列来表示任何给定时间 t 的累计违约金额。 (假设 time_to_default 可以被 t 整除)。我不知道如何创建一个新的数据框元素,将初始值分配给 0,然后遍历该系列....

听起来您需要将 groupbycumsum 一起使用,因为您想要 运行 总数:

cum_defaults = df.groupby('time_to_default').default_amnt.sum().cumsum()

然后您需要重新索引这个新系列以填补任何缺失的天数:

cum_defaults = cum_defaults.reindex(index=range(min(cum_defaults.index),
                                                max(cum_defaults.index) + 1), 
                                    method='ffill')

一些示例数据:

df = pd.DataFrame({'time_to_default': [1, 3, 3, 6], 
                   'default_amnt': [10, 20, 30, 40]})
>>> cum_defaults
time_to_default
1     10
2     10
3     60
4     60
5     60
6    100
Name: default_amnt, dtype: int64