Извлечение данных JSON из столбца в панде DataFrame - PullRequest
0 голосов
/ 28 августа 2018

Если у нас есть кадр данных pandas df1 со столбцом Car_Info.

Как извлечь информацию из следующих строк в новые столбцы? то есть используя регулярное выражение по сравнению с pd.read_json ()?

Обратите внимание, что форматирование для "car_id" и "wheel_id" немного отличается от форматирования для "price" и "count_results".

Car_Info

'{"car_id":"100","wheel_id":"80-ABC-999","price":14,"count_results":1051}'
'{"car_id":"200","wheel_id":"90-XY-6134","price":245,"count_results":37}'
'{"car_id":"300","wheel_id":"100-QRST-83751","price":729,"count_results":203}'

В частности, как нам манипулировать столбцом Car_Info, чтобы добавить следующие четыре столбца в кадр данных pandas df1?

car_id
        100 
        200
        300

wheel_id
        80-ABC-999
        90-XY-6134
        100-QRST-83751

price
        14
        245
        729


count_results
        1051
        37
        203

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Это JSON, и панды могут напрямую импортировать JSON:

import pandas as pd
df = pd.read_json('{"car_id":"100","wheel_id":"80-ABC-999","price":14,"count_results":1051}', lines=True)

   car_id  count_results  price    wheel_id
0     100           1051     14  80-ABC-999
0 голосов
/ 28 августа 2018

Ниже я создал код, который создает новый фрейм данных, который решает вашу проблему. Этот фрейм данных можно объединить с исходным фреймом данных.

df = pd.DataFrame()
for row in range(len(df1['car'])):
     df = df.append(pd.DataFrame([ast.literal_eval(df1['car_info'][row])]))

Функция literal_eval может быть импортирована из ast для обработки строк в столбце в качестве словарей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...