Python 从其他数据帧填充空值

Python 从其他数据帧填充空值,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有两个数据帧,df1和df2。我想根据df1中的相应条目并考虑到唯一标识符id来填充df2中的空值。下面是代码: 作为pd进口熊猫 将numpy作为np导入 df1=pd.DataFrame{id:[3,4,5,6,7,8,9], col1:[“迈克”、“马特”、“梅莎”、“彼得”、“塔比”、“卡尔”、“布赖恩”], col2:['645-345','645-333','324-543','123-432','563-654','324-123','902-342'], col3:[“猫”、“

我有两个数据帧,df1和df2。我想根据df1中的相应条目并考虑到唯一标识符id来填充df2中的空值。下面是代码:

作为pd进口熊猫 将numpy作为np导入 df1=pd.DataFrame{id:[3,4,5,6,7,8,9], col1:[“迈克”、“马特”、“梅莎”、“彼得”、“塔比”、“卡尔”、“布赖恩”], col2:['645-345','645-333','324-543','123-432','563-654','324-123','902-342'], col3:[“猫”、“猫”、“狗”、“无”、“霸王龙”、“山羊”、“蛇”]] df2=pd.DataFrame{id:[6,6,7,7,7,8,8,9], col1:['peter','peter',np.nan,np.nan,np.nan,np.nan,np.nan,np.nan], col2:['324-123'、'324-123'、'902-342'、'902-332'、'902-123'、'556-786'、'113-786'、'901-345'], col3:['none','none',np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]} 简而言之,我不是在开玩笑,我在这个网站上尝试了所有的方法,但我似乎找不到答案。任何帮助都将不胜感激

编辑:预期产出 我只想填写col1和col3 np.nan值。没有只是另一种选择。我的预期产出如下:

df_merged=pd.DataFrame{id:[6,6,7,7,8,9], col1:['peter'、'peter'、'tabby'、'tabby'、'tabby'、'carl'、'carl'、'brian'], col2:['324-123'、'324-123'、'902-342'、'902-332'、'902-123'、'556-786'、'113-786'、'901-345'], col3:[“无”、“无”、“霸王龙”、“霸王龙”、“霸王龙”、“山羊”、“山羊”、“蛇”]] 若id在两个数据帧中都是索引,那个么Erfan的注释应该可以工作。否则:

(df2.set_index('id')
    .fillna(df1.set_index('id'))
    .reset_index()
)
输出:

   id   col1     col2   col3
0   6  peter  324-123   none
1   6  peter  324-123   none
2   7  tabby  902-342  t-rex
3   7  tabby  902-332  t-rex
4   7  tabby  902-123  t-rex
5   8   carl  556-786   goat
6   8   carl  113-786   goat
7   9  brian  901-345  snake

是否还要替换字符串“none”?还有,你的预期输出是什么?我会用预期输出编辑帖子,我很抱歉。我喜欢这个,如果这是更大数据集上需要的,我会看一看并回复。最后,我希望尽可能避免篡改索引。这是生产线的一部分,我的老板不推荐我去搞乱指数。我可以吻你!无论出于什么原因,这对我来说都是一件困难的事情。我应该退一步,让我的思想去处理它。非常感谢。让我问一下,管道数据对set_索引有什么影响吗?没有,set_索引和reset_索引默认都会创建新的数据帧。