Pandas csv NaN值替换为左侧列

时间:2016-06-24 06:11:19

标签: python csv pandas

我是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 

请帮帮我。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用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