gpt4 book ai didi

python - 多列左连接

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:00 24 4
gpt4 key购买 nike

我习惯于将 dplyr 与 R 一起使用,我会做类似的事情

library(dplyr)
mtcars2=mtcars
mtcars3 = mtcars %>% left_join(mtcars2[,c("mpg","vs","hp")], by =c("mpg",'hp') )

# what this does is I do a left join with multiple columns and then bring over only *1* additional column. This means that mtcars3 only has one additional field - a duplicated 'vs'

我不知道如何使用 pd.merge 来做同样的事情。我想按两列连接,然后第三列-不是连接表中的每一列,如果有意义的话,除了join-bys

import pandas as pd
mtcars = pd.read_csv('mtcars.csv')
mtcars2=mtcars

mtcars3 = pd.merge(mtcars, mtcars2['vs','hp','mpg'],how='left', on = ['mpg','hp'])

最佳答案

IIUC 您可以通过添加 [] 并省略 mtcars2 来使用子集 - 您可以再次使用 mtcars:

import pandas as pd
mtcars = pd.read_csv('mtcars.csv')
mtcars3 = pd.merge(mtcars, mtcars[['vs','hp','mpg']], how='left', on = ['mpg','hp'])

示例:

import pandas as pd

mtcars = pd.DataFrame({'vs':[1,2,3],
'hp':[1,1,1],
'mpg':[7,7,9],
'aaa':[1,3,5]})

print (mtcars)
aaa hp mpg vs
0 1 1 7 1
1 3 1 7 2
2 5 1 9 3

mtcars3 = pd.merge(mtcars, mtcars[['vs','hp','mpg']], how='left', on = ['mpg','hp'])
print (mtcars3)
aaa hp mpg vs_x vs_y
0 1 1 7 1 1
1 1 1 7 1 2
2 3 1 7 2 1
3 3 1 7 2 2
4 5 1 9 3 3

关于python - 多列左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38887666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com