如果在另一列中符合条件,则填充NAN



我有以下数据框:

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

如果相应的状态行遵循状态列表,我试图以"美国"为"美国"列表:

states = ['AL', 'WI', 'AZ', 'FL', 'NJ', 'CO', 'CT', 'NY']

我审查了以下相关的信息:Python DataFrame使用来自其他列的信息填充NAN值

认为这个问题是相似的,我无法将应用功能使用到我的情况下,因为我不知道如何在值列表中检查其他列值是否在。我尝试了以下(失败)代码:

 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().

假设空间为 np.nan,如果不是,则可以替换为df=df.replace('',np.nan)您可以使用numpy.where()来更快地进行结果:

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

相关内容

  • 没有找到相关文章

最新更新