2016-06-02 2 views
2

Я пытаюсь разбить столбец на несколько столбцов на основе разделения запятой/пространством.Pandas split Колонка в несколько столбцов по запятой

мой dataframe в настоящее время выглядит

 KEYS             1 
0 FIT-4270           4000.0439 
1 FIT-4269           4000.0420, 4000.0471 
2 FIT-4268           4000.0419 
3 FIT-4266           4000.0499 
4 FIT-4265           4000.0490, 4000.0499, 4000.0500, 4000.0504, 

Я хотел

KEYS             1   2   3  4 
0 FIT-4270           4000.0439 
1 FIT-4269           4000.0420 4000.0471 
2 FIT-4268           4000.0419 
3 FIT-4266           4000.0499 
4 FIT-4265           4000.0490 4000.0499 4000.0500 4000.0504 

Мой код в настоящее время удаляет столбец КЛЮЧИ и им не уверен, почему. Может ли кто-нибудь улучшить или помочь исправить проблему?

v = dfcleancsv[1] 

#splits the columns by spaces into new columns but removes KEYS? 

dfcleancsv = dfcleancsv[1].str.split(' ').apply(Series, 1) 
+9

Вы хотите 'pd.concat ([df [[0]], df [1] .str.split (',', expand = True)], axis = 1)' IIUC – EdChum

+0

Я знаю, что вы позорный фигура с большим количеством репутации здесь, но если вы сделаете это официальным ответом, то не согласитесь. Это отлично работает – Anekdotin

+0

@Eddwinn EdChum делает это. Убедитесь, что вы, по крайней мере, проголосовали за его комментарий. – piRSquared

ответ

2

Использование Edchums ответ

pd.concat([df[[0]], df[1].str.split(', ', expand=True)], axis=1) 

Я был в состоянии решить эту проблему путем замены моих переменных.

dfcleancsv = pd.concat([dfcleancsv['KEYS'], dfcleancsv[1].str.split(', ', expand=True)], axis=1) 
0

может быть, это должно работать:

df = pd.concat([df['KEYS'],df[1].apply(pd.Series)],axis=1) 
1

В случае, если кто-то хочет, чтобы отделить одну колонку (со встроенными списками, deliminated с запятой) в несколько столбцов (без pd.concat) - попробуйте следующее:

data[0].str.split(',', expand=True) 

Это ответ на вопрос, который я искал здесь.

Смежные вопросы