填写熊猫中每个组的缺失日期和回填值

问题描述 投票:1回答:2

[我尝试为每个year填写2015~2019中缺少的city话,bfill中的value

  city  year  value
0   bj  2017     15
1   bj  2019     17
2   sh  2015     23
3   sh  2016     24
4   sh  2019     16

如何获得这样的预期结果?谢谢。

  city  year  value
0   bj  2015     15
1   bj  2016     15
2   bj  2017     15
3   bj  2018     17
4   bj  2019     17
5   sh  2015     23
6   sh  2016     24
7   sh  2017     16
8   sh  2018     16
9   sh  2019     16

我已经尝试使用下面的代码来创建cityyear对:

rng = pd.date_range('2015', '2019', freq='YS').year
c = df['city'].unique()
mux = pd.MultiIndex.from_product([c, rng], names=['city','year'])
print(mux)

我得到:

MultiIndex([('bj', 2015),
            ('bj', 2016),
            ('bj', 2017),
            ('bj', 2018),
            ('bj', 2019),
            ('sh', 2015),
            ('sh', 2016),
            ('sh', 2017),
            ('sh', 2018),
            ('sh', 2019)],
           names=['city', 'year'])
python-3.x pandas dataframe
2个回答
1
投票

在由DataFrame.reindex创建的DaatFrame中使用DataFrame.reindex使用MultiIndex,然后在第一级DataFrame.set_index使用DataFrame.set_index

GroupBy.bfill

1
投票

仅从原始数据开始,没有多索引:

GroupBy.bfill
© www.soinside.com 2019 - 2024. All rights reserved.