如果另一列中的行满足条件,则填充nan

2024-04-20 08:13:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

df=pd.DataFrame({'state':['AL','WI','FL','NJ','BM'],'country':['USA','USA','','','']})

如果相应的州行位于州列表下,我尝试将我的国家/地区列填写为“USA”:

^{pr2}$

我审阅了以下相关的SO帖子: Python Dataframe filling NaN values using information from other columns

虽然问题类似,但我无法对我的案例使用apply函数,因为我不知道如何检查值列表中是否有其他列值。我尝试了以下代码(不成功):

 df['country'] = values.where(df['country'] == np.nan and df['state'] in states, others=df['country'])
    ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Tags: 数据dataframedf列表国家countrybmpd
1条回答
网友
1楼 · 发布于 2024-04-20 08:13:25

假设空格是np.nan,如果不是,可以用df=df.replace('',np.nan)替换,可以使用^{}来获得更快的结果:

df.country=np.where(df.state.isin(states),df.country.fillna('USA'),df.country)
print(df)

  state country
0    AL     USA
1    WI     USA
2    FL     USA
3    NJ     USA
4    BM     NaN

相关问题 更多 >