如何基于时间戳将json转换为dataframe

2024-10-01 17:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据:

[
    {
        "timestamp": 1572430625231,
        "feature": "brakePressure",
        "value": 0
    },
    {
        "timestamp": 1572430625231,
        "feature": "lateralAcceleration",
        "value": 0
    },
    {
        "timestamp": 1572430625231,
        "feature": "longitudinalAcceleration",
        "value": 0
    },
    {
        "timestamp": 1572430625231,
        "feature": "acceleratorPosition",
        "value": 0
    },
    {
        "timestamp": 1572430625231,
        "feature": "currentTorque",
        "value": 0
    },
    {
        "timestamp": 1572430625231,
        "feature": "currentOutputPower",
        "value": 0
    },
    {
        "timestamp": 1572430625232,
        "feature": "yawRate",
        "value": 0
    },
    {
        "timestamp": 1572430625232,
        "feature": "wheelAngle",
        "value": 10
    },
    {
        "timestamp": 1572430625232,
        "feature": "vehicleSpeed/speed",
        "value": 0
    },
    {
        "timestamp": 1572430625232,
        "feature": "vehicleSpeed/state",
        "value": 0
    },
    {
        "timestamp": 1572430625232,
        "feature": "vehicleSpeed/unit",
        "value": 0
    },
    {
        "timestamp": 1572430625232,
        "feature": "relAllWheelDriveTorque/relAllWheelClutchTorque",
        "value": 0.24
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430625246,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430625445,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430625647,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430625893,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430626046,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430626247,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/longitude",
        "value": 8.899101
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/velocity",
        "value": 0
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/latitude",
        "value": 48.850462
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/horizStdDeviation",
        "value": 60
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/heading",
        "value": 354
    },
    {
        "timestamp": 1572430626445,
        "feature": "navPosition_HP/altitude",
        "value": 456
    },
    {
        "timestamp": 1572430626533,
        "feature": "acceleratorPosition",
        "value": 0
    },
    {
        "timestamp": 1572430626533,
        "feature": "brakePressure",
        "value": 0
    },
    {
        "timestamp": 1572430626533,
        "feature": "currentOutputPower",
        "value": 0
    },
    {
        "timestamp": 1572430626533,
        "feature": "currentTorque",
        "value": 0
    },....]

我想根据时间戳将这个json数据转换成一个dataframe。这很复杂,但我会尽力解释的。我希望得到每个时间戳中的经度和纬度,并希望100毫秒内的其他特性位于数据帧中的同一行。 这些是我想到的步骤:

  1. 将纬度和经度特征的所有时间戳分组
  2. 向前看100毫秒,向后看100毫秒 查找该范围内的其他功能
  3. 将该范围(100毫秒)内的功能放在同一个位置 经纬度及其时间戳所在的行。你知道吗
  4. 如果找到两个同名的功能,则采用该功能 并把它放在同一行经度上 和纬度
  5. 如果找不到特征,则放置NaN
  6. 将数据按经度和时间戳分组后 纬度,现在我可以用pandas.readïjson或 pandas.DataFrame.from目录你知道吗

我试着这样做,但我总是得到一个奇怪的行为,它也是非常缓慢。也许有人能教我怎么做。我会感激任何帮助,我愿意使用任何图书馆在那里。我现在使用熊猫,但我不知道是否有任何有用的方法,我的任务存在。我也在使用python3.7


Tags: 数据value时间timestampfeaturehplatitudealtitude

热门问题