python - 如何在Python中将json文件解析为DataFrame

标签 python json pandas

我有一些手机加速度计数据的 json 数据。看起来像这样:

{u'timestamps': {u'1524771017235': [[u'x',
                                     u'y',
                                     u'z',
                                     u'rotationX',
                                     u'rotationY',
                                     u'rotationZ'],
                                    [-0.02, 0, 0.04, 102.65, 68.15, 108.61],
                                    [-0.03, 0.02, 0.02, 102.63, 68.2, 108.5],
                                    [-0.05, 0.01, 0.1, 102.6, 68.25, 108.4],
                                    [-0.02, 0, 0.09, 102.6, 68.25, 108.4],
                                    [-0.01, 0, 0.03, 102.6, 68.25, 108.4]]}}

我想要的是一个数据帧,其中包含数据名称的列(x、y、z、rotationX、rotationY、rotationZ)和每个数据条目的行。时间戳信息可以存储在其他地方。

当我使用 d = pd.read_json('data.json') 时,这就是我得到的:

timestamps
2018-04-26 19:30:17.235 [[x, y, z, rotationX, rotationY, rotationZ], [...

它似乎以时间戳作为索引。将其余所有内容放入 1 个单元格中。

我对 json 没有太多经验,所以 pandas.read_json api 并没有多大意义。请帮忙。

我当前的解决方法是手动跳过前两个字典。并创建一个以第一列作为标题的 df。它有效,但确实不理想......

dataDf = pd.DataFrame(data = d['timestamps']['1524771017235'][1:], columns = d['timestamps']['1524771017235'][0])

x   y   z   rotationX   rotationY   rotationZ
0   -0.02   0.00    0.04    102.65  68.15   108.61
1   -0.03   0.02    0.02    102.63  68.20   108.50
2   -0.05   0.01    0.10    102.60  68.25   108.40

谢谢

最佳答案

您需要的是访问字典的键 {u'1524771017235': [[u'x', ... 是与键 timestamps 关联的值与您的 json 文件关联的字典 d 。然后尝试:

d['timestamps'].keys()[0]

它应该返回您的'1524771017235'值,因此要创建您的dataDf只需执行以下操作:

dataDf = pd.DataFrame(data = d['timestamps'][d['timestamps'].keys()[0]][1:], 
                      columns = d['timestamps'][d['timestamps'].keys()[0]][0])

你会得到相同的结果。

关于python - 如何在Python中将json文件解析为DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50051081/

相关文章:

python - 使用 ruamel.yaml,如何使带有 NEWLINE 的 vars 成为不带引号的多行

python - 有没有更好的方法将模型转换为格式良好的 JSON 字符串?

python - 将 Pandas 列中的日期时间格式化为季度

python - sqlalchemy flask : AttributeError: 'Session' object has no attribute '_model_changes' on session. 提交()

python - AWS API 网关和 Lambda - API 分页

java - 线程中的异常 "main"org.json.JSONException : JSONObject ["pod"] not found

php - 以编程方式向 JSON 添加数据的最简单方法是什么?

python - 让 .eq 忽略 NAN 值

python - 如何按英文日期格式排序而不是美式 pandas .sort()

python - 使用 find 方法查找完全匹配