Преобразование входной строки: Unlist? - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующий пример DataFrame, который я хотел бы преобразовать:

import pandas as pd
import re
d = {'example' : pd.Series(["['Adventure' 'African elephant' 'Animal' 'Ball game' 'Bay' 'Body of water' 'Communication Device' 'Electronic device']"])}
df = pd.DataFrame(d)
df.example = [[w.replace(' ', '_') for w in re.findall(r"'([^']*)'", x.lower())] for x in tqdm(df.example)]
df

Из:

0 [приключение, африканский слон, животное, игра в мяч ...]

Само преобразование (и ввод данных) является правильным, однако, как я могу преобразовать каждую строку в DataFrame, чтобы каждая строка была не списком, а простой строкой токенов?

Желаемый выход:

Из:

0 приключение, african_elephant, животное, ball_game ...

Я пытался:

df.example = [(w.replace(' ', '_') for w in re.findall(r"'([^']*)'", x.lower())) for x in tqdm(df.example)]

Однако, это вернулось <generator object <listcomp>.<genexpr> at 0x11...

Ответы [ 2 ]

0 голосов
/ 18 января 2019

На всякий случай, может быть, панды str.join пригодятся в будущем ;-)
1) добавили вторую строку к вашему примерному фрейму данных
2) не модифицировал ваш генератор
3) добавлена ​​дополнительная строка:

    df['example'] = df['example'].str.join(',')

Рабочий пример:

import pandas as pd
import re
d = {
    'example' : pd.Series([
        "['a' 'b c' 'd' 'e f' 'g' 'h i j' 'k l' 'm n']",
        "['a' 'b c' 'd']"
    ]),
}
df = pd.DataFrame(d)
display(df)
    example
0   ['a' 'b c' 'd' 'e f' 'g' 'h i j' 'k l' 'm n']
1   ['a' 'b c' 'd']

df.example = [[w.replace(' ', '_') for w in re.findall(r"'([^']*)'", x.lower())] for x in tqdm(df.example)]
df['example'] = df['example'].str.join(',')
display(df)
    example
0   a,b_c,d,e_f,g,h_i_j,k_l,m_n
1   a,b_c,d
0 голосов
/ 18 января 2019

Только добавить join к генератору:

df.example = [', '.join(w.replace(' ', '_') for w in re.findall(r"'([^']*)'", x.lower()))
              for x in (df.example)]

print (df)
                                             example
0  adventure, african_elephant, animal, ball_game...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...