Python Pandas - 将数据帧转换为 json

很快

我有这个 pandas.dataframe:

    date.               pid value   interval
0   2021-09-05 00:04:24 1       5.554   2021-09-05 00:00:00
1   2021-09-05 00:06:38 1       4.359   2021-09-05 00:05:00
2   2021-09-05 00:06:46 1       18.364  2021-09-05 00:05:00
3   2021-09-05 00:04:24 2       15.554  2021-09-05 00:00:00
4   2021-09-05 00:06:38 2       3.359   2021-09-05 00:05:00
5   2021-09-05 00:06:46 2       10.364  2021-09-05 00:05:00

我想把它变成JSON这样:

{
    "2021-09-05 00:00:00": {
        "pid1": [
            {
                "date": "2021-09-05 00:04:24",
                "pid": 1,
                "value": 5.554,
            },
        ],
        "pid2": [
            {
                "date": "2021-09-05 00:04:24",
                "pid": 2,
                "value": 15.554,
            }
        ],
    },
"2021-09-05 00:05:00": {
        "pid1": [
            {
                "date": "2021-09-05 00:04:24",
                "pid": 1,
                "value": 4.359,
            },
            {
                "date": "2021-09-05 00:04:24",
                "pid": 1,
                "value": 18.364,
            },

        ],
        "pid2": [
            {
                "date": "2021-09-05 00:06:38",
                "pid": 2,
                "value": 3.359,
            },{
                "date": "2021-09-05 00:06:46",
                "pid": 1,
                "value": 10.364,
            },
        ],
    }
}

基本上我希望按interval对数据进行分组有没有一种快速的方法来格式化它?

耶斯列

创建辅助列pid,转换为MultiIndex Series最后一个 crate 嵌套字典:

s = (df.assign(new = 'pid' + df['pid'].astype(str))
       .groupby(['interval','new'])[['date','pid','value']]
       .apply(lambda x : x.to_dict(orient= 'records')))

d = {level: s.xs(level).to_dict() for level in s.index.levels[0]}

print (d)

{
    '2021-09-05 00:00:00': {
        'pid1': [{
            'date': '2021-09-05 00:04:24',
            'pid': 1,
            'value': 5.554
        }],
        'pid2': [{
            'date': '2021-09-05 00:04:24',
            'pid': 2,
            'value': 15.554
        }]
    },
    '2021-09-05 00:05:00': {
        'pid1': [{
                'date': '2021-09-05 00:06:38',
                'pid': 1,
                'value': 4.359
            },
            {
                'date': '2021-09-05 00:06:46',
                'pid': 1,
                'value': 18.364
            }
        ],
        'pid2': [{
                'date': '2021-09-05 00:06:38',
                'pid': 2,
                'value': 3.359
            },
            {
                'date': '2021-09-05 00:06:46',
                'pid': 2,
                'value': 10.364
            }
        ]
    }
}

最后用于 json 使用:

import json
json = json.dumps(d)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将json数据转换为python中的pandas数据帧(列表中的字典)

使用 Pandas 在 Python 中将 JSON 结构转换为数据帧

如何将json文件转换为pandas数据帧

python-将pandas数据帧转换为json或dict,然后使用非唯一列返回到df

如何将python dict转换为pandas数据帧

如何将 json 文本字符串从 API 请求转换为 Pandas 数据帧?

使用Pandas将两个不同的数据帧转换为一个json文件

Pandas:将具有多行的 JSON 列转换为多个数据帧行

我正在尝试将深度嵌套的 JSON 转换为 Pandas 数据帧

如何将 Pandas 数据帧转换为唯一结构化的嵌套 json

使用 Struct 和 Array 结构将 Pandas 数据帧转换为 JSON 以上传到 BigQuery

将深度嵌套的 JSON 响应从 API 调用转换为 Pandas 数据帧

Python Pandas:将数据帧转换为 Str NAN 后不再是 NAN

Python Pandas 将数据帧转换为计数列表或向量

Python datetime 对象和数据转换为 PANDAS 数据帧

将json转换为pandas数据框

以以下格式将python中的数据帧转换为json

使用python和pandas数据框将复杂的json转换为csv

在 Pandas python 中将单行转换为不同的数据帧

将输出转换为 Pandas 数据帧

sparksql将数据帧转换为json

R将数据帧转换为JSON

将熊猫数据帧转换为 json

在python中将表数据帧转换为json api请求

如何在 Python 中将 json str 转换为数据帧

在python中将Pandas数据框转换为json的最佳方法

在python中将pandas数据框转换为特定的Json格式

ValueError:预期的对象或值<->无法将json文件加载到pandas数据帧,或转换为csv,都足够

将pandas数据帧转换为dict到JSON,取消拼合嵌套子键,删除None / NaN键