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