【问题标题】:Pandas csv NaN values replace by the left side columnsPandas csv NaN 值被左侧列替换
【发布时间】:2016-10-26 16:11:42
【问题描述】:

我是 python 和 pandas 的新手。 我在 csv 文件中有 3 列,列的数据类型是字符串。

例子

 col1  col2  col3
 ABC   XYZ   NaN
 PQR   LMN   QPR

我正在使用 pandas 来读取 csv 文件。我想用左侧列单元格值替换 NaN。在这里,我想用 col2 1st 值替换 col3 1st 值 所以输出会像

col1  col2 col3
ABC   XYZ   XYZ
PQR   LMN   QPR 

请帮助我。 谢谢。

【问题讨论】:

  • 看看pd.where()

标签: python csv pandas


【解决方案1】:

您可以使用combine_firstfillna

df['col3'] = df.col3.combine_first(df.col2)

print (df)
  col1 col2 col3
0  ABC  XYZ  XYZ
1  PQR  LMN  QPR

或者:

df['col3'] = df.col3.fillna(df.col2)

print (df)
  col1 col2 col3
0  ABC  XYZ  XYZ
1  PQR  LMN  QPR

如果您想要更动态的东西,请使用last_valid_index

df['col3'] = df.apply(lambda x:  x[x.last_valid_index()], axis=1)

print (df)
  col1 col2 col3
0  ABC  XYZ  XYZ
1  PQR  LMN  QPR

【讨论】:

  • 感谢 Jexrael...!
  • 很高兴能帮到你!
猜你喜欢
  • 2021-03-08
  • 2018-11-14
  • 2013-09-12
  • 2018-12-22
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
相关资源
最近更新 更多