gpt4 book ai didi

pandas - 如何使用条件执行 pd.fillna()

转载 作者:行者123 更新时间:2023-12-05 05:02:36 26 4
gpt4 key购买 nike

我正在尝试用 if 条件做一个 fillna

Fimport pandas as pd
df = pd.DataFrame(data={'a':[1,None,3,None],'b':[4,None,None,None]})
print df

df[b].fillna(value=0, inplace=True) only if df[a] is None
print df


a b
0 1 4
1 NaN NaN
2 3 NaN
3 NaN NaN

##我想要实现的目标

  a   b
0 1 4
1 NaN 0
2 3 NaN
3 NaN 0

请帮忙

最佳答案

您可以使用 & 链接两个条件来测试 mising 值,用于按位 AND,然后将值替换为 0:

df.loc[df.a.isna() & df.b.isna(), 'b'] = 0
#alternative
df.loc[df[['a', 'b']].isna().all(axis=1), 'b'] = 0
print (df)
a b
0 1.0 4.0
1 NaN 0.0
2 3.0 NaN
3 NaN 0.0

或者您可以在一个条件下使用 fillna:

df.loc[df.a.isna(), 'b'] = df.b.fillna(0)

关于pandas - 如何使用条件执行 pd.fillna(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62112047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com