【问题标题】:How to read a large .jl file in python如何在python中读取一个大的.jl文件
【发布时间】:2020-11-10 03:01:30
【问题描述】:

我正在尝试读取以下数据集并将其转换为 pandas 数据框:
https://www.kaggle.com/marlesson/meli-data-challenge-2020

这是一个包含以下格式的行的文件:

{'event_info': '...', 'event_timestamp': '...', 'event_type': '...'}
{'event_info': '...', 'event_timestamp': '...', 'event_type': '...'}
{'event_info': '...', 'event_timestamp': '...', 'event_type': '...'}

我一直在尝试以下方法,但时间太长(+60 分钟):

import numpy as np
import pandas as pd
import fileinput
import json

%%time

df = pd.DataFrame()
with fileinput.input(files='/kaggle/input/meli-data-challenge-2020/train_dataset.jl') as file:
    for line in file:
        conv = json.loads(line)
        df = df.append(conv, ignore_index=True)
df.head()

在这段代码中,它以字符串的形式逐行读取文件,将每个文件转换为 json,然后将其附加到数据帧中。

有什么方法可以更快地将数据集转换为 pandas 数据框?

【问题讨论】:

  • 除了以 .jl 结尾的文件(与 Julia 脚本的标准文件结尾一致)之外,在这个问题中是否与 Julia 编程语言有联系?如果不是,最好删除标签。

标签: python pandas dataframe


【解决方案1】:

我试图读取的文件是一个包含多个对象的 JSON 文件。 Pandas read_json() 支持 lines 参数用于如下数据:

%%time

df = pd.read_json('/kaggle/input/meli-data-challenge-2020/item_data.jl', lines=True)

Output: CPU times: user 14.1 s, sys: 3.31 s, total: 17.4 s
Wall time: 18.6 s

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-28
    • 2012-07-14
    • 1970-01-01
    • 2011-06-24
    • 2021-11-29
    • 2016-10-04
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多