Репликация строк и столбцов данных из одного кадра в другой - PullRequest
0 голосов
/ 09 января 2019

Я хочу сгруппировать определенное значение столбца x столбца A DF1 в качестве имени группы и объединить те же значения строк, представленные в столбце B, как серию или список

Затем эти серии / список значений столбца B заменяют значение x столбца A DF2 при первом появлении, дублируют строки для длины значений в серии / списке и добавляют значения в столбец A DF2.

DF1:

A   B     
x   1  
x   2  
x   3       


DF2:
***
Red    Blue  Green  Yellow
x      10     car    four
x      11     Bus    six
y      12     bike   two
z      13     cycle  two 

Я хочу, чтобы DF2 или новый DF был сформирован как

DF3:

Red    Blue  Green  Yellow  
1      10     car    four
2      10     car    four
3      10     car    four
1      11     Bus    six
2      11     Bus    six
3      11     Bus    six
y      12     bike   two
z      13     cycle  two

Может кто-нибудь помочь по логике? желательно с использованием панд с меньшим количеством итераций.

1 Ответ

0 голосов
/ 09 января 2019

Вы можете сделать outer merge и использовать bfill, чтобы объединить значения в столбце A из df1 со столбцом B:

df1.merge(df2, left_on ='A', right_on='Red', how='outer').bfill(axis=1)\
   .drop(['A','Red'], axis=1).rename(columns={'B':'Red'})

   Red Blue  Green Yellow
0   1   10    car   four
1   1   11    Bus    six
2   2   10    car   four
3   2   11    Bus    six
4   3   10    car   four
5   3   11    Bus    six
6   y   12   bike    two
7   z   13  cycle    two
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...