首页 > 解决方案 > 如何将每月数据填充到熊猫中的每周数据?

问题描述

我想在数据框中填充数据,该数据由每月数据组成,如下所示

M      A    B    C
2020-1 2    30   5
2020-2 8    50   9  

如何使用 pandas api 轻松做到这一点?

M          A    B    C
2020-1-01  2    30   5
2020-1-08  3    35   6
2020-1-15  5    40   7
2020-1-22  7    45   8
2020-2-01  8    50   9  

提前致谢

标签: pandas

解决方案


DataFrame.resample按月使用W周末和前向填充值,然后使用andffill进行一些处理,并将值添加到列:GrouperGroupBy.cumcount

df['M'] = pd.to_datetime(df['M'])
df = df.set_index('M').resample('W').ffill()
s = df.groupby(pd.Grouper(freq='MS')).cumcount().to_numpy()

df['B'] = df['B'].add(df.C.mul(s))
df[['A','C']] = df[['A','C']].add(s, axis=0)
df['B'] = df['B']
print (df)
            A   B  C
M                   
2020-01-05  2  30  5
2020-01-12  3  35  6
2020-01-19  4  40  7
2020-01-26  5  45  8
2020-02-02  8  50  9

推荐阅读