2015-05-04 2 views
0

Я относительно новичок в python. У меня есть кадр данных, и мне нужно разделить каждый символ данных в каждом столбце на собственный столбец в другом кадре данных. Я разделил данные на словарь, но просто обнаружил, что мне нужен новый фрейм данных. Вот сделка:Разделение каждого элемента массива на отдельный столбец фрейма данных

Источник фрейма данных выглядит следующим образом:

Col1 
1 100100 
2 000000 
3 020001 
4 100300 

У меня есть словарь, как это:

1: "['1', '0', '0', '1', '0', '0']", 
2: "['0', '0', '0', '0', '0', '0']", 
3: "['0', '2', '0', '0', '0', '1']", 
4: "['1', '0', '0', '3', '0', '0']" 

и должны в конечном итоге с кадра данных в этом формате:

0 1 2 3 4 5 
1 1 0 0 1 0 0 
2 0 0 0 0 0 0 
3 0 2 0 0 0 1 
4 1 0 0 3 0 0 

Любой совет будет оценен - ​​мне не повезло в моих поисках. Я предполагаю, что переход от исходных данных к новому кадру данных идеален. Или я использую словарь, который я создал (источник ==> dict ==> новый кадр данных), лучший маршрут? Благодарю.

ответ

3

Это не самый элегантный, но жизнь коротка, так что я бы применить list, чтобы получить значения, а затем pd.Series расширить их в столбцы:

>>> df 
    Col1 
1 100100 
2 000000 
3 020001 
4 100300 
>>> df.Col1.apply(list).apply(pd.Series).astype(int) 
    0 1 2 3 4 5 
1 1 0 0 1 0 0 
2 0 0 0 0 0 0 
3 0 2 0 0 0 1 
4 1 0 0 3 0 0 
+0

Спасибо - что сделал трюк! –

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