Скопируйте pd.concat, используя pd.merge - PullRequest
2 голосов
/ 01 апреля 2020

Можно ли повторить следующее, используя pd.merge

a = pd.DataFrame(dict(x=[1,2], y=[5,5]))
b = pd.DataFrame(dict(x=[7,7], y=[12,13]))
pd.concat([a,b],axis=1)

, который выводит

   x  y  x   y
0  1  5  7  12
1  2  5  7  13

Так как это позволило бы мне добавить суффиксы к именам столбцов.

Я ожидал, что сработает следующее:

pd.merge(a, b, how = 'outer',)

, но это вернет:

   x   y
0  1   5
1  2   5
2  7  12
3  7  13

Я хотел бы, чтобы вывод был:

   x_l  y_l  x_r   y_r
0  1    5    7    12  
1  2    5    7    13  

Ответы [ 2 ]

5 голосов
/ 01 апреля 2020

Вы также можете использовать df.join:

a.join(b,lsuffix='_l',rsuffix='_r')

   x_l  y_l  x_r  y_r
0    1    5    7   12
1    2    5    7   13
2 голосов
/ 01 апреля 2020

IIU C исправьте concat, добавив keys

s=pd.concat([a,b], axis=1,keys=['l_','r_'])
s.columns=s.columns.map(''.join)
s
   l_x  l_y  r_x  r_y
0    1    5    7   12
1    2    5    7   13
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...