gpt4 book ai didi

python - pandas 填充日期+多列

转载 作者:行者123 更新时间:2023-12-01 01:17:06 26 4
gpt4 key购买 nike

假设我有以下数据

date          id1       id2     category    value
01/01/2019 1000 2000 income 1.0
01/01/2019 1000 2010 income 1.0
01/01/2019 1000 2000 expense 1.0
01/01/2019 1000 2010 expense 1.0
01/02/2019 1000 2000 income 2.0
01/02/2019 1000 2010 income 2.0
01/02/2019 1000 2000 expense 2.0
01/02/2019 1000 2010 expense 2.0
01/04/2019 1000 2000 income 3.0
01/04/2019 1000 2010 income 3.0
01/04/2019 1000 2000 expense 3.0
01/04/2019 1000 2010 expense 3.0

我想填写缺失的日期 01/03/2019,而且还要为 id1、id2 和类别的每个组合填写一行。所以在我的例子中,将添加 4 行:

date          id1       id2     category    value
01/03/2019 1000 2000 income 2.0
01/03/2019 1000 2010 income 2.0
01/03/2019 1000 2000 expense 2.0
01/03/2019 1000 2010 expense 2.0

当这是唯一的索引时,我熟悉回填和前向填充日期,但是上述通过多个列的值组合进行回填的特殊问题给我带来了麻烦。有什么简单的方法可以使用 pandas 来做到这一点吗?

最佳答案

首先是一个枢轴问题,然后成为一个重新采样填充问题

df.date=pd.to_datetime(df.date)
df['key']=df.groupby('date').cumcount()

newdf=df.set_index(['date','key']).unstack().resample('D').mean().ffill().stack().reset_index(level=0)

newdf

date id1 id2 value
key
0 2019-01-01 1000.0 2000.0 1.0
1 2019-01-01 1000.0 2010.0 1.0
2 2019-01-01 1000.0 2000.0 1.0
3 2019-01-01 1000.0 2010.0 1.0
0 2019-01-02 1000.0 2000.0 2.0
1 2019-01-02 1000.0 2010.0 2.0
2 2019-01-02 1000.0 2000.0 2.0
3 2019-01-02 1000.0 2010.0 2.0
0 2019-01-03 1000.0 2000.0 2.0
1 2019-01-03 1000.0 2010.0 2.0
2 2019-01-03 1000.0 2000.0 2.0
3 2019-01-03 1000.0 2010.0 2.0
0 2019-01-04 1000.0 2000.0 3.0
1 2019-01-04 1000.0 2010.0 3.0
2 2019-01-04 1000.0 2000.0 3.0
3 2019-01-04 1000.0 2010.0 3.0

关于python - pandas 填充日期+多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com