从pandas DataFrame的列中提取JSON数据

时间:2018-08-28 19:07:22

标签: python json 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列以将以下四列添加到熊猫数据帧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 :(得分:0)

这是JSON,pandas可以直接导入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

答案 1 :(得分:-1)

下面,我创建了代码,该代码创建了一个解决您的问题的新数据框。该数据框可以合并回原始数据框。

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

可以从ast导入函数literal_eval,以将列中的字符串作为字典来处理。