为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python Pandas用非NaN的值填充NaN值

使用Python Pandas用非NaN的值填充NaN值

互换的青春 2021-03-31 17:14:45
我有一个数据框,其中有2列,两列中都有一些NaN值。df = { 'A' : [1,Nan, 2, Nan, Nan, 3],       'B' : [Nan, Nan, 3, 4, 5 ,Nan]}我想只用B列中的NaN值不填充A列中的NaN值,反之亦然。结果应为:df = { 'A': [1,Nan, 2, 4, 5, 3],       'B' : [1, Nan, 3, 4, 5 ,3]}
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

使用,bfill并ffill与axis参数为1:


df.ffill(1).bfill(1)

输出:


     A    B

0  1.0  1.0

1  NaN  NaN

2  2.0  3.0

3  4.0  4.0

4  5.0  5.0

5  3.0  3.0


查看完整回答
反对 回复 2021-04-09
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

这是一种使用的方法 df.fillna


演示:


import pandas as pd

import numpy as np

df = { 'A' : [1,np.nan, 2, np.nan, np.nan, 3],

       'B' : [np.nan, np.nan, 3, 4, 5 ,np.nan]}

df = pd.DataFrame(df)

df["A"] = df["A"].fillna(df["B"])

df["B"] = df["B"].fillna(df["A"])

print(df)

输出:


     A    B

0  1.0  1.0

1  NaN  NaN

2  2.0  3.0

3  4.0  4.0

4  5.0  5.0

5  3.0  3.0


查看完整回答
反对 回复 2021-04-09
  • 2 回答
  • 0 关注
  • 380 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信