Объединить столбцы из нескольких фреймов данных с определенными значениями с помощью Pandas

#python #pandas #pandasql

#python #pandas #pandasql

Вопрос:

У меня есть 7 фреймов данных только со значениями «OK» и «KO», и единственный столбец, который соединяет все, — это идентификатор.

 df1:
ID, Name, Address, Email
1, OK, OK, OK
2, OK, KO, OK
3, OK, OK, KO

df2:
ID Job, Credit_Card, Driving_License_Number
1, OK, OK, OK
2, KO, KO, OK
3, OK, OK, OK
  

Я пытаюсь найти способ запросить или объединить все значения «KO» в один csv-файл / фрейм данных, чтобы я мог легко проверить, какой столбец не прошел тест

Что-то вроде этого:

 ID_2, ID_3
Address, Email
Job
Credit_Card
  

Итак, с этим я знаю, что в ID_2 отсутствует адрес, информация о работе и кредитной карте, а в ID_3 отсутствует адрес электронной почты.

Ответ №1:

Давайте сначала объединим их ID , а затем выполним матричное умножение:

 merged = df1.merge(df2, on='ID').set_index('ID')

(merged.eq('KO') @ (merged.columns   (', '))).str[:-2]
  

Вывод:

 ID
1                             
2    Address, Job, Credit_Card
3                        Email
dtype: object