鉴于我有一个pandas系列,如果所有值都是NaN或者所有值都是零或NaN ,我想用零填充NaN.
例如,我想用零填充以下系列中的NaN.
0 0
1 0
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
Run Code Online (Sandbox Code Playgroud)
但是,我不希望fillna(0)以下系列:
0 0
1 0
2 2
3 0
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
Run Code Online (Sandbox Code Playgroud)
我正在查看文档,似乎我可以使用pandas.Series.value_counts来确保值只有0和NaN,然后只需调用fillna(0).换句话说,我想检查是否设置(s) .unique().astype(str)).issubset(['0.0','nan']),THEN fillna(0),否则不.
考虑到熊猫有多强大,似乎可能有更好的方法来做到这一点.有没有人有任何建议干净有效地做到这一点?
cᴏʟᴅsᴘᴇᴇᴅ的潜在解决方案
if s.dropna().eq(0).all():
s = s.fillna(0)
Run Code Online (Sandbox Code Playgroud) python multiple-conditions conditional-statements pandas fillna