我试图填补遗漏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
我尝试使用下面的代码来创建city
和year
配对:
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'])
在创建的DaatFrame中使用DataFrame.reindex
by MultiIndex
,DataFrame.set_index
然后GroupBy.bfill
在第一级使用city
:
df = df.set_index(['city','year']).reindex(mux).groupby(level=0).bfill().reset_index()
print (df)
city year value
0 bj 2015 15.0
1 bj 2016 15.0
2 bj 2017 15.0
3 bj 2018 17.0
4 bj 2019 17.0
5 sh 2015 23.0
6 sh 2016 24.0
7 sh 2017 16.0
8 sh 2018 16.0
9 sh 2019 16.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句