Свяжите два pandas кадра данных, содержащих списки - PullRequest
1 голос
/ 24 марта 2020

У меня есть два кадра данных с одинаковыми именами столбцов и индексов, содержащие список в каждой ячейке, выглядящий так:

df1
   A      B
c [1,2] [2,5]

d [3,5] [4,1]

df2
   A      B
c [2,3] [4,5]

d [2,3] [5,3]

Я хотел бы иметь только один кадр данных, выглядящий так:

df_1&2
      A         B
c [1,2,2,3] [2,5,4,5]

d [3,5,2,3] [4,1,5,3]

Есть предложения?

Другое дело; как объединить кадры данных только там, где индексы дублируются и пропустить уникальные:

  df1
       A      B
    c [1,2] [2,5]

    e [3,5] [4,1]

    df2
       A      B
    c [2,3] [4,5]

    f [2,3] [5,3]

Где результат будет:

   df1&2

          A         B
    c [1,2,2,3] [2,5,4,5]

1 Ответ

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

Присоединить DataFrames с помощью +, только необходимые одинаковые значения индекса и только столбцы, заполненные списками в обоих DataFrame s:

df = df1 + df2
print (df)
              A             B
c  [1, 2, 2, 3]  [2, 5, 4, 5]
d  [3, 5, 2, 3]  [4, 1, 5, 3]

РЕДАКТИРОВАТЬ:

idx = df1.index.intersection(df2.index)
df = df1.loc[idx] + df2.loc[idx]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...