【问题标题】:How to normalize a complex json format in a pandas data frame that is a list of dictionaries如何在作为字典列表的熊猫数据框中规范化复杂的 json 格式
【发布时间】:2022-06-11 17:22:21
【问题描述】:

我有一个 pandas 数据框,其中有一列这样的 json 格式。我无法理解如何提取它。

df['completionDetails'][0] gives:

[{'name': 'start', 'time': 1654098788177},
 {'name': 'arrival',
  'time': 1654099038368,
  'location': [-74.2713929, 40.5017297]},
 {'name': 'departure',
  'time': 1654098843357,
  'location': [-74.2802414, 40.5095964]}]

我试过了:

dict_df = pd.DataFrame([ast.literal_eval(i) for i in df['completionDetails'].values])

但它给了我错误。我可以使用什么方法?

预期输出:

start_time  arrival_time    arrival_location    departure_time  departure_location
1654098788177   1654099038368   [-74.2713929, 40.5017297]   1654098843357    [-74.2802414, 40.5095964]

【问题讨论】:

  • 结果应该是什么样子?
  • 我真的无法理解这种格式。但考虑到这种情况,列应该像 start_time、arrival_time、arrival_location、department_time、department_location..
  • 那不是 json - 它是一个字典。
  • 但是如何在数据框中将其提取为单独的列?

标签: python pandas eval


【解决方案1】:

IIUC completionDetails 列的每个单元格都是一个字典列表。 您可以从每个单元格中创建一个数据框并连接 dfs:

dict_df = pd.concat([pd.DataFrame(i) for i in df['completionDetails'].values])

【讨论】:

  • 但它会给我每行 3 行..
  • 您的预期输出是什么?
猜你喜欢
  • 2021-04-11
  • 2014-12-12
  • 2020-10-21
  • 2019-06-29
  • 2017-01-21
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 2017-08-25
相关资源
最近更新 更多