Python 从其他数据帧填充空值
我有两个数据帧,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的注释应该可以工作。否则: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:[“猫”、“
(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_索引默认都会创建新的数据帧。