Python пересечение 2 фреймов данных со столбцами типа списка - PullRequest
0 голосов
/ 08 марта 2020

У меня есть два кадра данных с только столбцом типа списка для каждого. Я хотел получить выходной фрейм данных, который имеет только те списочные значения, общие для обоих данных фреймов (порядок элементов списка не имеет значения).

**df1**
column name: pm
[a,b,c]
[g,h,k]
[i,l]
[k]

**df2**
column_name:fm
[c,b,a]
[k,l,m]
[g,k,h]
[l]

**df3**
pm        fm
[a,b,c]   [c,b,a]
[g,h,k]   [g,k,h]

df3 должен сохранять порядок элементов в pm и fm , но чтобы соответствовать правилу пересечения, set (pm) должен соответствовать set (fm).

Пожалуйста, дайте мне знать, если вы можете помочь в этом

1 Ответ

0 голосов
/ 08 марта 2020

Добавьте еще один столбец с именем «ключ» в оба кадра данных, а затем объедините два кадра данных, используя внутреннее объединение в столбце «ключ».

Столбец «Ключ» - это отсортированный список pm и fm в df1 и df2 соответственно

df1['key'] = df1.pm.sort_values().apply(lambda x: sorted(x))
df2['key'] = df1.fm.sort_values().apply(lambda x: sorted(x))
df3 = pd.merge(df1, df2, how='inner', on=['key'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...