如何在dict或DataFrame中转换具有dict形状的对象(Python)

时间:2019-11-21 08:35:59

标签: python dataframe dictionary

我正在使用两个IMU,以获得一个角度。情况是,当我收到数据时,它具有如下所示的formart:

{heading : 0.002, pitch : 0.000, roll : -0.000, yaw : 0.000}

在这种格式下,键值不是字符串,而所有值只是一个对象。为此,当我有一些此类对象时,如果我用所有对象创建一个列表,然后从该列表中创建一个DataFrame,则结果是

                          0
0    {heading : 0.002, pitch : 0.000, roll : 0.000,...
1    {heading : 0.002, pitch : 0.000, roll : 0.000,...
2    {heading : 0.000, pitch : 0.000, roll : 0.000,...
3    {heading : 0.002, pitch : 0.000, roll : 0.000,...
4    {heading : 0.002, pitch : 0.000, roll : 0.000,...
..                                                 ...
129  {heading : 0.002, pitch : 0.000, roll : 0.000,...
130  {heading : 0.002, pitch : 0.000, roll : 0.000,...
131  {heading : 0.002, pitch : 0.000, roll : 0.000,...
132  {heading : 0.002, pitch : 0.000, roll : 0.000,...
133  {heading : 0.002, pitch : 0.000, roll : 0.000,...

我想得到这样的东西:

    heading    pitch     roll   yaw
0    value     value     value  value
1    value     value     value  value
2    value     value     value  value

有人可以帮助我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用hjson模块

import hjson
data = ['{heading : 0.002, pitch : 0.000, roll : -0.000, yaw : 0.000}',
        '{heading : 0.001, pitch : 0.003, roll : -0.000, yaw : 0.005}']
new_data = [hjson.loads(d) for d in data]
import pandas as pd
pd.DataFrame(new_data)


    heading     pitch   roll    yaw
0   0.002       0.000   0       0.000
1   0.001       0.003   0       0.005

答案 1 :(得分:0)

Pandas具有pd.read_json方法。

从文档中

>>> df.to_json(orient='records')
'[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]'
>>> pd.read_json(_, orient='records')
  col 1 col 2
0     a     b
1     c     d