Python 如何将dataframe与另一个包含标量值计数的数据帧连接起来?

Python 如何将dataframe与另一个包含标量值计数的数据帧连接起来?,python,pandas,dataframe,join,Python,Pandas,Dataframe,Join,正在尝试连接两个数据帧: df1 = pd.DataFrame({'id': [1,2,3,4,5], 'foo': ['abc','def','jkl','mno','pqr']}) d = {1:100, 2:200, 3:300, 4:400, 5:500} df2 = pd.DataFrame(list(d.items())) df1.join(df2) 因此,我得到: id foo 0 1 ------------------ 0 1 abc 1 100

正在尝试连接两个数据帧:

df1 = pd.DataFrame({'id': [1,2,3,4,5], 'foo': ['abc','def','jkl','mno','pqr']}) 
d = {1:100, 2:200, 3:300, 4:400, 5:500}
df2 = pd.DataFrame(list(d.items()))
df1.join(df2)
因此,我得到:

    id  foo 0   1
------------------
0   1   abc 1   100
1   2   def 2   200
2   3   jkl 3   300
3   4   mno 4   400
4   5   pqr 5   500
如何取而代之:

    id  foo     cnt
------------------
0   1   abc     100
1   2   def     200
2   3   jkl     300
3   4   mno     400
4   5   pqr     500

只需重命名
df2
merge
而不是
join

df1.merge(df2.rename(columns={0:'id',1:'cnt'}),on='id')


逻辑是什么?您想要一个简单的水平连接,不包括
0
clunn?或者您要合并这些数据帧,分别在
id
0
上匹配它们?重命名
df2
,然后合并:
df2.columns=['id','cnt']
df1.merge(df2,on='id')
?或者您正在寻找其他内容?
df1['cnt']=df2[1]
您需要:
df1.merge(df2.rename(columns={0:'id',1:'cnt'}),on='id')
。您获得
df2
的第一列的原因是
join
位于索引上。
df1.set_index('id')。join(df2.set_index(0))
   id  foo  cnt
0   1  abc  100
1   2  def  200
2   3  jkl  300
3   4  mno  400
4   5  pqr  500