2015-11-11 4 views
1

У меня есть фрейм данных pandas с переменной массива, которая в настоящее время состоит из двух частей, как в примере ниже. Первая часть - дата и время, а вторая часть - цена. Записи в dataframe имеют разные длины price_trend массивы.Разбиение строк в массиве - python

Id Name Color price_trend     
1 apple red  '1420848000:1.25', '1440201600:1.35', '1443830400:1.52'     60 
2 lemon yellow '1403740800:0.32','1422057600:0.25' 

Я хотел бы разделить каждую из строк в массиве на две части вокруг двоеточие (:), однако, когда я запускаю этот код, все значения в price_trend заменяются нан

df['price_trend'] = df['price_trend'].str.split(':') 

Я хотел бы сохранить массив в этой области данных, а не создать новый.

+0

Я не использовал панд, но 'split' возвращает список, потому что вы включаете строку на две номера. Вы хотите оба числа? Что должно произойти с двумя из них? – SuperBiasedMan

ответ

0

df['price_trend'].apply(lambda x:[i.split(':') for i in x])

0 [['1420848000, 1.25'], [ '1440201600, 1.35'], [ '1443830400, 1.52']] 
1       [['1403740800, 0.32'], ['1422057600, 0.25']] 
0

Я предполагаю, что ниже код должен работать для вас

>>> df={} 
>>> df['p']=['1420848000:1.25', '1440201600:1.35', '1443830400:1.52'] 
>>> df['p']=[ x.split(':') for x in df['p']] 
>>> df 
{'p': [['1420848000', '1.25'], ['1440201600', '1.35'], ['1443830400', '1.52']]} 
Смежные вопросы