【问题标题】:How to convert JSON data into specified Pandas DataFrame如何将 JSON 数据转换为指定的 Pandas DataFrame
【发布时间】:2019-08-13 14:35:21
【问题描述】:

我有一个如下所示的 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
.        .       .      .            .                   .
.        .       .      .            .                   .
.        .       .      .            .                   .

我可以在读取为问题集格式后转换为指定格式的数据,但是有什么方法可以直接读取指定格式的 JSON 数据?

【问题讨论】:

    标签: python json python-3.x pandas dataframe


    【解决方案1】:

    这个怎么样?

    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
    

    【讨论】:

    • 看起来它解决了我的问题,所以根据这个解决方案,我首先使用 pd.read_json 读取文件,然后将其转换为 dict,是直接将 JSON 数据转换为 dict 类型吗?
    • 是的!当您使用 json 库 (json.load(open(filepath, 'r'))) 加载数据时,它只会为您提供 Python 字典中的数据
    猜你喜欢
    • 2023-03-31
    • 2017-07-20
    • 2021-05-17
    • 2020-12-21
    • 2017-04-13
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多