Справка Pandas: преобразовать столбец из строки с разделителями в массив столбцов - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть CSV, загруженный в фрейм данных panda. Один из столбцов содержит список слов, разделенных точкой с запятой, например

Пляжный отдых; Много места; Бассейн

и я хотел бы превратить это в массив или коллекцию [«Пляжный отдых», «Много места», «Бассейн»]

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

Спасибо!

Ответы [ 3 ]

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

Вы можете сделать это, если хотите, чтобы заголовки были в списке

list(df.columns.values)

или

df[col_name].tolist()

также, проверьте этот ответ здесь

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

Вы можете проверить converters

TESTDATA = StringIO("""
 A,B
1,Beach holiday;Plenty of space;Pool
1,Beach holiday;Plenty of space;Pool
    """)
df = pd.read_csv(TESTDATA ,converters={'B':lambda x : x.split(';')})
df
Out[147]: 
    A                                       B
0   1  [Beach holiday, Plenty of space, Pool]
1   1  [Beach holiday, Plenty of space, Pool]
0 голосов
/ 05 ноября 2018

Рекомендуемое решение, особенно если у вас одинаковое количество разделителей ; в каждой строке, состоит в создании кадра данных из серии object dtype, в которой каждый элемент представляет собой одну строку:

df = pd.DataFrame({'A': ['Beach holiday;Plenty of space;Pool',
                         'Mountain holiday;Plenty of grey;Ice']})

df = df['A'].str.split(';', expand=True)

print(df)

                  0                1     2
0     Beach holiday  Plenty of space  Pool
1  Mountain holiday   Plenty of grey   Ice

Создание серии списков, альтернатива, не рекомендуется ; это включает вложенный слой указателей.

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