繁体   English   中英

从pandas DataFrame的列中提取JSON数据

[英]Extracting JSON data from column in pandas DataFrame

如果我们有一个带有Car_Info列的pandas数据帧df1。

我们如何将以下字符串中的信息提取到新列中? 即使用正则表达式与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

这是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

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

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,以将字典中的字符串作为字典来处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM