Как получить уникальное значение столбца панд, который содержит список или значение? - PullRequest
0 голосов
/ 11 июня 2018

как получить уникальное значение столбца панд, которое содержит список или значение?моя колонка:

column   |  column
test     |  [A,B]
test     |  [A,C]
test     |    C 
test     |    D
test     |   [E,B]

я хочу список вот так:

list = [A, B, C, D, E]

спасибо

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вы можете использовать функцию выравнивания Credit @ wim

import collections

def flatten(l):
    for i in l:
        if isinstance(i, collections.abc.Iterable) and not isinstance(i, str):
            yield from flatten(i)
        else:
            yield i

Затем используйте set

list(set(flatten(df.B)))

['A', 'B', 'E', 'C', 'D']

Настройка

df = pd.DataFrame(dict(
    B=[['A', 'B'], ['A', 'C'], 'C', 'D', ['E', 'B']]
))
0 голосов
/ 11 июня 2018

Вы можете применить pd.Series для разделения списков, затем stack и unique.

import pandas as pd
df = pd.DataFrame({'col': [['A', 'B'], ['A', 'C'], 'C', 'D', ['E', 'B']]})

df.col.apply(pd.Series).stack().unique().tolist()

Выходы

['A', 'B', 'C', 'D', 'E']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...