如何将JSON数据转换为指定的DataFram

2024-10-02 08:29:11 发布

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

我有一个json数据,如下所示:

"rows": [
        ["2019-08-02", 364, 209, 2, 2],
    ["2019-08-03", 386, 250, 2, 5],
    ["2019-08-04", 382, 221, 3, 1],
    ["2019-08-05", 361, 218, 1, 0],
    ["2019-08-06", 338, 205, 4, 0],
    ["2019-08-07", 353, 208, 2, 2],
    ["2019-08-08", 405, 223, 2, 2],
    ["2019-08-09", 405, 266, 2, 2],
    ["2019-08-10", 494, 288, 0, 1],
        ]

我想将数据的头作为(不包括在JSON文件中)作为

["day", "estimatedPeopleVisited", "bought", "gives_pfeedback", "gives_nfeedback"]

我尝试了以下代码来读取文件:

f = pd.read_json("data1308.json")
print(f)

输出如下:

                    rows
0   [2019-08-02, 364, 209, 2, 2]
1   [2019-08-03, 386, 250, 2, 5]
2   [2019-08-04, 382, 221, 3, 1]
3   [2019-08-05, 361, 218, 1, 0]
4   [2019-08-06, 338, 205, 4, 0]
5   [2019-08-07, 353, 208, 2, 2]
6   [2019-08-08, 405, 223, 2, 2]
7   [2019-08-09, 405, 266, 2, 2]
8   [2019-08-10, 494, 288, 0, 1]

我希望输出形式为:

       day      est   bought   gives_pfeedback    gives_nfeedback
0  2019-08-02   364    209           2                   2
1  2019-08-03   386    250           2                   5
2  2019-08-04   382    221           3                   1
3  2019-08-05   361    218           1                   0
4  2019-08-06   338    205           4                   0
.        .       .      .            .                   .
.        .       .      .            .                   .
.        .       .      .            .                   .

在以problemset格式读取数据之后,我可以以指定的格式转换数据,但是,有没有任何方法可以直接读取指定格式的JSON数据?你知道吗


Tags: 文件数据代码jsonread格式rowspd
1条回答
网友
1楼 · 发布于 2024-10-02 08:29:11

这个怎么样?你知道吗

import pandas as pd

data = {"rows": [
                 ["2019-08-02", 364, 209, 2, 2],
                ["2019-08-03", 386, 250, 2, 5],
                ["2019-08-04", 382, 221, 3, 1],
                ["2019-08-05", 361, 218, 1, 0],
                ["2019-08-06", 338, 205, 4, 0],
                ["2019-08-07", 353, 208, 2, 2],
                ["2019-08-08", 405, 223, 2, 2],
                ["2019-08-09", 405, 266, 2, 2],
                ["2019-08-10", 494, 288, 0, 1],
                    ]}
cols = ["day", "estimatedPeopleVisited", "bought", "gives_pfeedback", "gives_nfeedback"]

df = pd.DataFrame.from_dict(data["rows"])  
df.columns = cols

相关问题 更多 >

    热门问题