Pandas Symmetric Difference значение списка между 2 столбцами - PullRequest
0 голосов
/ 28 ноября 2018

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

                     A                   B
 0  [ACL1, ACL2, ACL3]  [ACL1, ACL4, ACL2]

Я хочу выполнить symbric_difference в списке A и B, чтобы вывод был [ACL3, ACL4]

df1 = df['A'].symmetric_difference(df['B'])
print (df1)

AttributeError: 'Series' object has no attribute 'symmetric_difference'

Но это дает вышеуказанную ошибку .... Я сделал неправильно?Как я могу сделать окончательный вывод?

Спасибо ..

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Если заботиться о спектакле

[list(set(x).symmetric_difference(set(y))) for x , y in zip (df.A,df.B)]
[['ACL3', 'ACL4']]
0 голосов
/ 28 ноября 2018

Проблема в том, что symmetric_difference - это метод наборов , вместо этого вы можете сделать:

import pandas as pd

data = [[['ACL1', 'ACL2', 'ACL3'], ['ACL1', 'ACL4', 'ACL2']]]
df = pd.DataFrame(data=data, columns=['A', 'B'])


def symmetric_difference(x):
    return list(set(x.A).symmetric_difference(x.B))


result = df[['A', 'B']].apply(symmetric_difference, axis=1)

print(result)

Вывод

0    [ACL3, ACL4]
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...