#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