【问题标题】:Extracting JSON data from column in pandas DataFrame从 pandas DataFrame 中的列中提取 JSON 数据
【发布时间】:2019-02-03 11:49:47
【问题描述】:

如果我们有一个带有 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

【问题讨论】:

标签: python json pandas


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

  • 你会如何使用正则表达式回答这个问题?
猜你喜欢
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多