【问题标题】:Turning a huge TextEdit file of JSON into a Pandas dataframe将 JSON 的巨大 TextEdit 文件转换为 Pandas 数据框
【发布时间】:2016-02-02 21:33:26
【问题描述】:

我有一个非常大的文本编辑文档形式的 JSON 文件列表,每个文件都有 6 个键值对。

我想将每个键值对转换为 Pandas Dataframe 的列名,并列出该列下的值。

{'column1': "stuff stuff", 'column2': "details details, ....}

有标准的方法吗?

我认为您可以使用

开始将文件上传到数据框中
import pandas as pd
df = pd.read_table(file_name)

我认为可以通过使用 groupby 遍历每个 JSON 文档来创建每个列。

编辑:我认为正确的方法是将每个 JSON 对象解析为一个 Dataframe,然后创建一个函数来遍历所有 JSON 并创建一个 Dataframe。

【问题讨论】:

    标签: python json pandas dataframe textedit


    【解决方案1】:

    看看read_jsonjson_normalize。您确实很可能会读取每个文件,然后根据需要使用 pd.concat 来组合它们。

    下面几行应该可以工作,具体取决于您的文件是什么样子(这里假设每个 json dictionary 在文件中构成一行:

    df = pd.DataFrame()
    f = open('workfile', 'r')
    for line in f:
        df = pd.concat([df, pd.read_json(line, orient='columns')])
    

    【讨论】:

    • 这是正确的做法。但是,数据框的形状为 (20000, 1)。你如何遍历每个对象?到那时,解析每个键更容易还是使用read_json
    • IIUC,你有 1 个带有 json 字典的文本文件,每个文件都是 6 个键值对?每个键都一样吗?
    • 是的,每个键都相同。我错过了什么明显的东西吗?
    • 听起来像是一个人会使用标准的python方法逐行读取每个文件(参见docs.python.org/2/tutorial/…),并在旅途中使用pd.read_json()pd.concat解析它们。我可以模拟一个例子。
    • 我去看看。谢谢,举个例子会很有帮助
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2019-05-14
    • 2019-07-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多