根据另一列中的值,将一列的一个值映射为该列的nan值

  • 本文关键字:一列 一个 映射 nan python pandas
  • 更新时间 :
  • 英文 :


有两列UserID和country。在国家/地区的某些行中有值,但在其他行中有相同UserID的nan值。我想在nan的价值观中映射出国家的价值。

UserID      Country
1            India
2            US
3            Uk
1            nan
4            nan
2            nan
4            nan

所需输出:

UserID      Country
1            India
2            US
3            Uk
1            India
4            nan
2            US
4            nan

我试着这样做:

df['Country']=df['UserID'].map(lambda x:df[x])

但是我收到了UserID 4的错误。我尝试手动替换UserID 4的国家/地区:

df['Country']=np.where(df['UserID']==4,'India',df['Country'])

但我还是犯了一个错误。出了什么问题,或者有其他方法可以解决吗?

通过groupby()ffill():尝试

df['Country']=df.groupby('UserID')['Country'].ffill()

通过groupby()fillna():

df['Country']=df.groupby('UserID')['Country'].fillna(method='ffill')

相关内容

最新更新