Сериализованный массив для столбцов в Panda DataFrame - PullRequest
0 голосов
/ 04 декабря 2018

Я импортировал файл .csv, и он содержит столбец с сериализованным массивом.Как я могу сделать 4 столбца из массива?Я уже пробовал кое-что с пакетами regex и phpserialize, но не смог этого сделать.

Вот как выглядят столбцы:

forecast
---------------------------------------------------------------------------
a:4:{s:5:"sunny";i:10;s:5:"rainy";i:70;s:8:"thundery";i:0;s:5:"snowy";i:20;}

Теперь я хочу, чтобы весь столбец был разделен за 4такие столбцы:

sunny|rainy|thundery|snowy
--------------------------
10   |70   |0       |20

Есть ли простой способ сделать это?Заранее спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Если ваши прогнозы сохраняются в виде строк в вашем фрейме данных, вы можете извлечь нужные значения с помощью регулярного выражения, а затем повернуть фрейм данных.Нечто подобное должно помочь вам начать работу (я добавил ряд новых значений, чтобы продемонстрировать):

>>> df
                                            forecast
0  'a:4:{s:5:"sunny";i:10;s:5:"rainy";i:70;s:8:"t...'
1  'a:4:{s:5:"sunny";i:20;s:5:"rainy";i:80;s:8:"t...'

df.forecast.str.extractall('"(?P<column>.*?)";i:(?P<value>\d+)').reset_index(level=0).pivot('level_0','column','value')
column  rainy snowy sunny thundery
level_0                           
0          70    20    10        0
1          80    10    20        5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...