在非常多的列上加入2个pandas数据帧

时间:2017-11-22 04:25:40

标签: python python-3.x pandas merge

是否可以在其中一个数据帧中的大量列上连接两个pandas数据帧?我在这个假设的例子中有15个,但我真的想为大约100列和更多行做这个......

假设你有Dataframe 1:

A     Type
123   hi
356   bye
999   nay
222   no

Dataframe 2是:

1    2     3    4     5    6   7   8  9  10 11  12   13   14   15....
0    0    123  356   999  999 222  0  0   0  0   0    0    0    0
222  356    0    0     0  356 123 999 0   0  0   0    0    0    0

,输出为

1    2     3    4     5    6   7   8  9  10 11  12   13   14   15

           hi   bye   nay  nay no
no   bye                   bye hi  nay 

2 个答案:

答案 0 :(得分:3)

IIUC使用replace

df2.replace(df1.set_index('A').T.to_dict('r')[0]).replace(0,'')
Out[830]: 
    1    2   3    4    5    6   7    8 9 10 11 12 13 14 15
0           hi  bye  nay  nay  no                         
1  no  bye                bye  hi  nay                    

或者我们可以使用map

d=df1.set_index('A').T.to_dict('r')[0]
df2.apply(lambda x :x.map(d)).fillna('')

答案 1 :(得分:0)

也许这更干净了?

df2.replace(df1.set_index('A')['Type'].to_dict())