大佬教程收集整理的这篇文章主要介绍了熊猫合并行匹配的数据帧并附加值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个数据框:
df1:
Chr Pos qual
0 1 1234 2
1 2 5678 6
2 1 1111 4
3 5 0123 30
df2:
Chr Pos
0 1 1234
1 5 0123
2 3 1111
3 1 01234
如果 df2 中的行与 df1 中的行匹配,则将 qual 值附加到 df2。 如果不是,则将行保留在 df2 中,但将 NaN 添加到 df2。
期望的输出:
Chr Pos qual
0 1 1234 2
1 1 1111 NaN
2 1 01234 NaN
3 2 5678 NaN
4 3 1111 NaN
5 5 0123 30
请注意,在这种情况下,Pos 列需要保留为字符串。
data = {'Chr':[1,2,1,5],'Pos':['1234','5678','1111','0123'],'qual':[2,6,4,30]}
df1 = pd.DataFrame(data)
data2 = {'Chr':[1,5,3,1],'0123','01234']}
df2 = pd.DataFrame(data2)
我尝试使用 pd.merge() 和 iterrows,但似乎无法获得所需的输出。
谢谢。
如果我理解正确的话应该是:
import numpy as np
df3 = pd.merge(df1,df2,how='outer',on=['Chr','Pos'],inDicator=TruE)
df3.loc[df3._merge != "both",'qual']= np.nan
df3.drop(columns='_merge',inplace=TruE)
df3
以上是大佬教程为你收集整理的熊猫合并行匹配的数据帧并附加值全部内容,希望文章能够帮你解决熊猫合并行匹配的数据帧并附加值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。