我有一个数据框1
prec_-80_2
如下所示:
df
我需要根据import pandas as pd
s = {'id': [243,243, 243, 243, 443,443,443],
'st': [1,3,5,9,12, 18,23],
'value':[2.4, 3.8, 3.7, 5.6, 1.2, 0.2, 2.1]}
df = pd.DataFrame(s)
中的值填写缺少的行, id st value
0 243 1 2.4
1 243 3 3.8
2 243 5 3.7
3 243 9 5.6
4 443 12 1.2
5 443 18 0.2
6 443 23 2.1
和st
列中的值应从上一条记录中复制。我的输出应类似于
value
以此类推。
如何在熊猫数据框中执行此操作?
在这里,我试图填充缺失的记录,而不是仅填充缺失的值。
答案 0 :(得分:0)
如果列st
中的值是唯一的,请使用DataFrame.reindex
,并用ffill
来填充缺失值:
c = np.arange(df['st'].min(), df['st'].max()+1)
df1 = (df.set_index('st')
.reindex(c)
.ffill()
.reset_index()
)
df1['id'] = df1['id'].astype(int)
print (df1)
st id value
0 1 243 2.4
1 2 243 2.4
2 3 243 3.8
3 4 243 3.8
4 5 243 3.7
5 6 243 3.7
6 7 243 3.7
7 8 243 3.7
8 9 243 5.6
9 10 243 5.6
10 11 243 5.6
11 12 443 1.2
12 13 443 1.2
13 14 443 1.2
14 15 443 1.2
15 16 443 1.2
16 17 443 1.2
17 18 443 0.2
18 19 443 0.2
19 20 443 0.2
20 21 443 0.2
21 22 443 0.2
22 23 443 2.1