Python Pandas получают разницу в 2 списка - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в python pandas, у меня возникла проблема с поиском различий для 2 списков в рамках панды данных.

Пример ввода с разделителем ;:

ColA; ColB  
A,B,C,D; B,C,D  
A,C,E,F; A,C,F  

Ожидаемый результат:

ColA; ColB; ColC  
A,B,C,D; B,C,D; A  
A,C,E,F; A,C,F; E  

То, что я хочу сделать, похоже на:

df['ColC'] = np.setdiff1d( df['ColA'].str.split(','), df['ColB'].str.split(','))

Но возвращается ошибка:

повышение ValueError («Длина значений не соответствует длине индекса», data, index, len (data), len (index))

Пожалуйста, сообщите

1 Ответ

0 голосов
/ 11 июля 2019

Вы можете сделать это так:

import pandas as pd

# creating DataFrame (can also be loaded from a file)
df = pd.DataFrame([[['A', 'B', 'C', 'D'], ['B', 'C']]], columns=['ColA', 'ColB'])

# apply a lambda function to get the difference
df['ColC'] = df[['ColA', 'ColB']].apply(lambda x: [i for i in x[0] if i not in x[1]], axis=1)

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...