我有两个数据框,
df1=pd.DataFrame({"Req":["Req 1","Req 2","Req 3"],"Count":[1,2,1]})
Req Count
0 Req 1 1
1 Req 2 2
2 Req 3 1
df2=pd.DataFrame({"Req":["Req 1","Req 2"],"Count":[0,1]})
Req Count
0 Req 1 0
1 Req 2 1
我正在尝试根据“Req”列合并这些 df
我想要的输出是,
Req total from_1 from_2
Req 1 1 1 0
Req 2 3 2 1
Req 3 1 1 0
I tried pd.merge(df1, df2, on = "Req", )
但它没有给出我想要的输出,请帮助,提前致谢!
您可以使用merge http://pandas.pydata.org/pandas-docs/stable/generated/pandas.merge.html使用左连接,替换NaN
s,重命名列并最后添加新列assign
:
df = (pd.merge(df1, df2, on = "Req", how='left')
.fillna(0)
.rename(columns={'Count_x':'from_1','Count_y':'from_2'})
.assign(total=lambda x: x['from_1'] + x['from_2'])
)
print (df)
from_1 Req from_2 total
0 1 Req 1 0.0 1.0
1 2 Req 2 1.0 3.0
2 1 Req 3 0.0 1.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)