根据另一列的值替换一列中的空值

  • 本文关键字:一列 空值 替换 python pandas
  • 更新时间 :
  • 英文 :


我有一个包含两列的数据帧,其中一列称为hits:

0      NaN
1      5.0
2      NaN
3      5.0
4      NaN
... 
295    NaN
296    NaN
297    NaN
298    NaN
299    NaN

另一列称为转换:

0      0
1      0
2      0
3      0
4      0
..
345    0
346    1
347    0
348    1
349    0

我想做的是检查转换列中的行是0还是1,如果它有0,命中的行将有值6(它将替换空值(,如果它只有1,它将用9 替换值

我试着使用lambda,但没有给我一个好的结果:

df['hits'] = df.apply(
lambda row: 9 if df['converted'] == 1 & df['hits'] == 'nan' else 6
,axis=1) 

您需要将df更改为局部变量row

df['hits'] = df.apply(
lambda row: 9 if row['converted'] == 1 & pd.isnull(row['hits']) else 6
,axis=1) 

或者使用布尔掩码

df.loc[df['converted'].eq(0) & df['hits'].isna(), 'hits'] = 6
df.loc[df['converted'].eq(1), 'hits'] = 9 

最新更新