如何将带有某些列的pandas dataframe转换为json格式?

22 浏览
0 Comments

如何将带有某些列的pandas dataframe转换为json格式?

我有一个从数据库加载数据的数据帧df。大多数列都是json字符串,而有些列甚至是json列表。例如:

id name columnA columnB

1 John {"dist": "600", "time": "0:12.10"} [{"pos": "1st", "value": "500"},{"pos": "2nd", "value": "300"},{"pos": "3rd", "value": "200"}, {"pos": "total", "value": "1000"}]

2 Mike {"dist": "600"} [{"pos": "1st", "value": "500"},{"pos": "2nd", "value": "300"},{"pos": "total", "value": "800"}]

...

如你所见,不是所有行的json字符串列都有相同数量的元素。

我需要保留像id和name这样的普通列,并展开json列,如下所示:

id name columnA.dist columnA.time columnB.pos.1st columnB.pos.2nd columnB.pos.3rd columnB.pos.total

1 John 600 0:12.10 500 300 200 1000

2 Mark 600 NaN 500 300 NaN 800

我尝试使用json_normalize,像这样:

from pandas.io.json import json_normalize

json_normalize(df)

但似乎存在一些keyerror问题。正确的做法是什么?

0