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

使用Python使用非NaN值填充NaN值,python,pandas,Python,Pandas,我有一个dataframe,它有两列,两列中都有一些NaN值 df = { 'A' : [1,Nan, 2, Nan, Nan, 3], 'B' : [Nan, Nan, 3, 4, 5 ,Nan]} 我只想用B列中的NON值来填充A列中的NaN值,反之亦然。 结果应该是: df = { 'A': [1,Nan, 2, 4, 5, 3], 'B' : [1, Nan, 3, 4, 5 ,3]} 谢谢这是一种使用df.fillna的方法 演示: import pan

我有一个dataframe,它有两列,两列中都有一些NaN值

df = { 'A' : [1,Nan, 2, Nan, Nan, 3],
       'B' : [Nan, Nan, 3, 4, 5 ,Nan]}
我只想用B列中的NON值来填充A列中的NaN值,反之亦然。 结果应该是:

df = { 'A': [1,Nan, 2, 4, 5, 3],
       'B' : [1, Nan, 3, 4, 5 ,3]}

谢谢

这是一种使用
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
输出:

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

使用,
b填充
f填充
,且
参数等于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

请分享你迄今为止所做的尝试。