Python 熊猫-填充NaN的变异-什么';这是一个优雅的和蟒蛇式的方法吗?
晚上好 在下面的数据框中,Python 熊猫-填充NaN的变异-什么';这是一个优雅的和蟒蛇式的方法吗?,python,pandas,Python,Pandas,晚上好 在下面的数据框中,'c'列有几个N 用一个值填充第一个Nnans,用另一个值填充剩余的nans是一种很好的python方法 (示例:用值10填充前3个nan,用值20填充其余2个nan) 谢谢 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-这是一种(非python
'c'
列有几个N
用一个值填充第一个Nnans
,用另一个值填充剩余的nans
是一种很好的python方法
(示例:用值10
填充前3个nan
,用值20
填充其余2个nan
)
谢谢
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)方式:
您可以使用,这需要一个限制
参数:
In [75]:
df = df.fillna(10,limit=3)
df = df.fillna(20)
df
Out[75]:
a b c
a 5 5 10
b 5 8 8
c 0 1 10
d 8 5 6
e 1 6 10
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 20
j 2 6 20
如果您喜欢单行程序,可以将调用链接到fillna
:
In [80]:
df = df.fillna(10,limit=3).fillna(20)
df
Out[80]:
a b c
a 5 5 10
b 5 8 8
c 0 1 10
d 8 5 6
e 1 6 10
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 20
j 2 6 20
您可以使用,这需要一个限制
参数:
In [75]:
df = df.fillna(10,limit=3)
df = df.fillna(20)
df
Out[75]:
a b c
a 5 5 10
b 5 8 8
c 0 1 10
d 8 5 6
e 1 6 10
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 20
j 2 6 20
如果您喜欢单行程序,可以将调用链接到fillna
:
In [80]:
df = df.fillna(10,limit=3).fillna(20)
df
Out[80]:
a b c
a 5 5 10
b 5 8 8
c 0 1 10
d 8 5 6
e 1 6 10
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 20
j 2 6 20
我认为
limit
有另一种含义(docstring表示“向前或向后填充的最大尺寸间隙”),它只是意外地在这里工作。@joris我确实对此感到好奇,所以我想会发生什么,它实现了OP的要求,我同意它似乎在一些测试后意外地工作,我同意它在这里似乎确实工作。但随后,或文件编制不正确,或文件中存在错误implementation@EdChum很有创意。您还可以将其缩短为一行:df=df.fillna(10,limit=3)。fillna(20)是的,对于使用方法而不是值来填充的情况,docstring描述限制。但是,在这种情况下,将出现一个问题来清除限制的用法:我认为限制
有另一个含义(docstring表示“向前或向后填充的最大尺寸间隙”),它只是意外地在这里起作用。@joris我确实很好奇,所以我想会发生什么,它按照OP的要求做了,我同意,在一些测试之后,它似乎确实意外地工作了,我同意它在这里似乎确实工作了。但随后,或文件编制不正确,或文件中存在错误implementation@EdChum很有创意。您还可以将其缩短为一行:df=df.fillna(10,limit=3)。fillna(20)是的,对于使用方法而不是值来填充的情况,docstring描述限制。但在这种情况下,将出现一个问题来清除限制的使用: