Python 用其他数据帧替换数据帧中的空值

Python 用其他数据帧替换数据帧中的空值,python,pandas,dataframe,null,key-value,Python,Pandas,Dataframe,Null,Key Value,我有两个数据帧,我想用how='left'(DF1)替换键(X)上的其他数据帧的空值。非常感谢你 DF1 X | Y 1 | a 2 | NaN 3 | c DF2 X | Y 1 | a 2 | b 3 | NaN 4 | d OUTPUT X | Y 1 | a 2 | b 3 | c 与as一起使用: 或者使用np.其中作为: df1['Y'] = np.where(df1.Y.isnull(),df1['X'].map(df2.set_index('X')['Y']),df1[

我有两个数据帧,我想用how='left'(DF1)替换键(X)上的其他数据帧的空值。非常感谢你

DF1
X | Y
1 | a
2 | NaN
3 | c 

DF2
X | Y
1 | a 
2 | b
3 | NaN
4 | d

OUTPUT
X | Y
1 | a
2 | b
3 | c
与as一起使用:

或者使用
np.其中
作为:

df1['Y'] = np.where(df1.Y.isnull(),df1['X'].map(df2.set_index('X')['Y']),df1['Y'])


您可以从df2的行创建字典,并将该字典用于:

输出

   X  Y
0  1  a
1  2  b
2  3  c
print(df1)
   X  Y
0  1  a
1  2  b
2  3  c
import numpy as np
import pandas as pd

da1 = [[1, 'a'],
       [2, np.nan],
       [3, 'c']]

df1 = pd.DataFrame(data=da1, columns=['X', 'Y'])

da2 = [[1, 'a'],
       [2, 'b'],
       [3, np.nan],
       [4, 'd']]

df2 = pd.DataFrame(data=da2, columns=['X', 'Y'])

mapping = dict(zip(df2.X, df2.Y))
df1.Y = df1.Y.fillna(df1.X.map(mapping))
print(df1) 
   X  Y
0  1  a
1  2  b
2  3  c