将熊猫系列的json对象转换为DataFrame

时间:2020-01-25 12:47:06

标签: python json pandas

我正在尝试找出如何将键序列作为列的熊猫系列json对象从DataFrame的切片转换为新的DataFrame。我已经尝试了所有类似的解决方案,但似乎没有任何效果。它要么返回相同的序列,要么生成错误。有些行具有不同的键,它们并不完全相同,并且元素的数量也有所不同。变化是有限的,因此每个键可以有自己的列。有没有办法将这种类型的系列转换为DataFrame?

1       {'length': '27 mm', 'style': 'Short', 'width': '9 mm'}
2       {'length': '51 mm', 'style': 'Long', 'width': '9 mm'}
5       {'length': '29 mm', 'style': 'Medium', 'width': '9 mm','id': '16684'}
6       {'width': '7 mm', 'length': '29 mm', 'style': 'Medium','mfg': '45-163'}
8       {'width': '8 mm', 'length': '33 mm', 'style': 'Medium'}

1 个答案:

答案 0 :(得分:1)

好吧,我建议

  1. 将每个json转换为字典
  2. 将每个字典转换为DataFrame
  3. 合并所有数据框,并保留索引

在此示例中,数据位于series中。还将'替换为"

import json
pd.concat([pd.DataFrame(json.loads(s), index=[ind]) for ind, s in series.str.replace('\'', '"').items()], sort=False)
    length  style   width   id      mfg
1   27 mm   Short   9 mm    NaN     NaN
2   51 mm   Long    9 mm    NaN     NaN
5   29 mm   Medium  9 mm    16684   NaN
6   29 mm   Medium  7 mm    NaN     45-163
8   33 mm   Medium  8 mm    NaN     NaN