晚上好
在下面的数据框中,列'c'
有几个nan
用一个值填充第一个Nnans
,用另一个值填充剩余的nans
,这是一种很好的python方法吗
(示例:用值10
填充前3nans
,用值20
填充其余2nans
)
谢谢
a b c
a 5 5 NaN
b 5 8 8
c 0 1 NaN
d 8 5 6
e 1 6 NaN
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 NaN
j 2 6 NaN
编辑I-这是一种(非pythonic)方法:
nan_number = df['c'].isnull().cumsum()[df['c'].isnull()]
df['c'][nan_number.index[nan_number<=3]] = 10
df['c'][nan_number.index[nan_number>3]] = 20
编辑二-这开始看起来更好:
nan_rows = df.index[df['c'].isnull()]
df.loc[nan_rows[:3], 'c'] = 10
df.loc[nan_rows[3:], 'c'] = 20
您可以使用^{} ,这需要一个
limit
参数:如果您喜欢单行程序,可以将调用链接到
fillna
:相关问题 更多 >
编程相关推荐