Сортировка строк в одном кадре данных в столбцы другого кадра данных - PullRequest
0 голосов
/ 22 марта 2020

У меня есть следующие фреймы данных:

df1 = {'col1': {0: 'IL', 1: 'NE', 2: 'NE', 3: 'IL', 4: 'TX', 5: 'TX'},
 'col2': {0: 'bob', 1: 'fred', 2: 'alex', 3: 'ted', 4: 'frank', 5: 'tim'}}
df2 = {'IL': {0},'NE': {0},'TX': {0}}

фреймы данных и ожидаемый результат

Я хочу добавить информацию col 2 из df1 в правильный столбец в df2 , На данный момент у меня есть следующий код:

for i in range(len(df1)):
      if df1.loc[i,'col1'] == #header of df2
             #add df1.loc[i,'col2'] to the header 'col1' matches with

Мне нужна помощь в том, как я могу сослаться на заголовок df2, а затем добавить код col 2 к указанному заголовку c, с которым он совпадает.

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Попробуйте:

df1.set_index(['col1', df1.groupby('col1').cumcount()])['col2'].unstack(0)

Вывод:

col1   IL    NE     TX
0     bob  fred  frank
1     ted  alex    tim
0 голосов
/ 22 марта 2020

используйте сводную таблицу , чтобы объединить col2 в список, и примените pandas explode к каждому столбцу:

  (df1.pivot_table(columns='col1',values='col2',aggfunc=list)
   .apply(lambda x: pd.Series.explode(x))
   .reset_index(drop=True)
   )

     col1   IL    NE      TX
       0    bob   fred   frank
       1    ted  alex    tim
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...