У меня есть csv файл, который я обрабатываю с pandas. Столбец называется raw_value. Я хочу получить уникальные символы в этом столбце.

x=df.manual_raw_value.unique()

Позволяет получить уникальные строки. Тем не менее, я ищу, чтобы получить все символы в этих столбцах. а именно: алфавит = 6, 3 5 1 8 V O T R E A 2. é è /:

   raw_value
    6,35
    11,68
    VOTRE
    AVEL AR VRO
    2292
    questions.
    nb
    les
    937,99
    à
    et
    TTC
    1
    620
    Echéance
    vos
    ROB21
    Pièce
    AGRIAL
    désignation
    des
    taux
    13s
    2
    par
    le
    mois,
    32
    21/07/2016
    FR
    au
    0
    téléphonique
    BROYEUR
    et
    ST
    TVA
    de
    des
    ECHEANCIER
    à
    ne
    lieu
    481,67
    N°0016
    de
    ministère
    de
    20/11/2015
    Si
    vous
    59
    cas
    EUR
    3.19
    2
    contrôle
    assurances
    BAS
    et
    4423873
    renseignements
    6104219
    C9DECOMPTEDIVERS
    6635
    DE
    10825

< Сильный > EDIT_1

Все три решения работают отлично. Я выбрал второй

set(df.raw_value.apply(list).sum())

Однако он возвращает некоторый закодированный символ. Это связано с кодированием? как декодировать и отображать настоящий символ. Вот что это печатает

{' ',
 '!',
 '"',
 '%',
 '&',
 "'",
 '(',
 ')',
 '*',
 '+',
 ',',
 '-',
 '.',
 '/',
 '0',
 '1',
 '2',
 '3',
 '4',
 '5',
 '6',
 '7',
 '8',
 '9',
 ':',
 '=',
 '>',
 '?',
 '@',
 '_',
 'a',
 'b',
 'c',
 'd',
 'e',
 'f',
 'g',
 'h',
 'i',
 'j',
 'k',
 'l',
 'm',
 'n',
 'o',
 'p',
 'q',
 'r',
 's',
 't',
 'u',
 'v',
 'w',
 'x',
 'y',
 'z',
 '\x82',
 '\x87',
 '\x94',
 '\xa1',
 '\xa7',
 '\xaa',
 '\xab',
 '\xac',
 '\xae',
 '\xaf',
 '\xb0',
 '\xb4',
 '\xb9',
 '\xbb',
 '\xc2',
 '\xc3',
 '\xe2'}
1
vincent75 28 Май 2017 в 14:12

2 ответа

Лучший ответ

Вы можете сначала преобразовать необработанное значение в список строк, а затем поместить его в char df и получить уникальные элементы.

df.applymap(list).raw_value.apply(pd.Series).stack().unique()
Out[620]: array(['6', ',', '3', ..., 'ô', 'D', 'M'], dtype=object)

Вы также можете сделать это путем преобразования необработанного значения в список, конкататации списка, а затем получения набора списка.

set(df.raw_value.apply(list).sum())

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

set(df.raw_value.sum())

Обратите внимание, что первый подход будет включать в результаты nan, тогда как второй и третий подход исключают nan.

2
Allen 28 Май 2017 в 11:24

Я знаю, что на этот вопрос уже был дан ответ, но вот еще один способ ответить на него:

x = set(list(' '.join(manual_raw_value.values)))
0
Ziyad Moraished 20 Дек 2019 в 19:44