Как преобразовать столбец в столбец списка в панд?

#python #pandas

Вопрос:

Как я могу преобразовать обычный столбец в столбец списка во фрейме pandas данных? Я пробовал что-то подобное, но это не работает:

 df['popular_tags'] = df['popular_tags'].to_list()  

В настоящее время колонка выглядит следующим образом:

 df['popular_tags']  0 'A', 'B', 'C' 1 'A', 'B', 'C'  

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

 df['popular_tags']   0 ['A', 'B', 'C']  1 ['E', 'F', 'G']  

Комментарии:

1. Как выглядит ожидаемый результат?

2. Привет @mcsoini, я отредактировал сообщение. Я просто хочу, чтобы столбец в фрейме данных был столбцом списка.

3. как это выглядит в настоящее время?

4. .map(list) должно сработать

Ответ №1:

 df = pd.DataFrame({'Popular Tags': ["'A', 'B', 'C'", "'E', 'F', 'G'"]})  print(df)  Popular Tags 0 'A', 'B', 'C' 1 'E', 'F', 'G'  df['Popular Tags']= df['Popular Tags'].astype('object') df['Popular Tags'] = df['Popular Tags'].apply(lambda x: x.split(', ')) print(df)   Popular Tags 0 ['A', 'B', 'C'] 1 ['E', 'F', 'G']  

Комментарии:

1. Спасибо, это то, о чем я думал. Однако, я получаю ошибку, которая 'float' object has no attribute 'split' .

2. @salix это потому, что в столбце есть некоторые значения с плавающей popular_tags точкой. Вам следует либо избавиться от них, либо сначала попытаться преобразовать их в строки: df['popular_tags'].astype('str').str.split(', ') .

3. @salix_august, пожалуйста, проверьте мой ответ — это, вероятно, быстрее.

Ответ №2:

Очень просто:

 df['popular_tags'] = df['popular_tags'].str.split(', ')  

Выход:

 gt;gt;gt; df  popular_tags 0 ['A', 'B', 'C'] 1 ['A', 'B', 'C']