Как разделить элементы в столбце на несколько столбцов в python

#python #dataframe #split

#python #фрейм данных #разделить

Вопрос:

У меня есть этот df:

введите описание изображения здесь

Я хочу разделить элементы в каждом столбце на несколько столбцов. Поэтому мой вывод должен выглядеть следующим образом:

введите описание изображения здесь

Я пытался использовать следующий код:

 dff = df.columna.str.split(expand=True)
dff
  

Но генерируемый результат выглядит как первое изображение. Я не уверен, как подойти к этой проблеме.

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

1. Откуда, например, detergent берется? В вашем исходном фрейме данных у вас нет этого значения.

2. Второе изображение — это просто пример того, как должен выглядеть мой исходный фрейм данных. Каждый элемент должен находиться в другом столбце, как показано на рисунке 2.

Ответ №1:

Предположим, у вас есть этот фрейм данных:

 df = pd.DataFrame({'columna': ['a,b,c', 'x,y', 'd,e,f', 'g,h,i,j,k,l,m']})
  

Затем:

 df = df['columna'].str.split(',', expand=True).rename(columns=lambda x: 'column{}'.format(x))
print(df)
  

Создает:

   column0 column1 column2 column3 column4 column5 column6
0       a       b       c    None    None    None    None
1       x       y    None    None    None    None    None
2       d       e       f    None    None    None    None
3       g       h       i       j       k       l       m
  

Ответ №2:

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

 dff[['column0','column1','column2','column3','column4','column5']] = dff['columna'].str.split(',',expand=True)
dff