我有以下数据帧
id val
1 40
2 null
3 null
4 30
5 null
我想得到
id val
1 40
2 1
3 2
4 30
5 3
我试过这样做
df_1['val'][df_1['val'].isnull()]
= df_1['val'][df_1['val'].isnull()].ffill() + df_1[df_1['val'].isnull()].count()
但是这行不通
您可以设置range
通过计数NaN
通过布尔掩码的sum
,最后解析值为整数:
m = df_1['val'].isnull()
df_1.loc[m, 'val'] = range(1, m.sum() + 1)
df_1['val'] = df_1['val'].astype(int)
print (df_1)
id val
0 1 40
1 2 1
2 3 2
3 4 30
4 5 3