如何在Python中读取一个大的.jl文件

3

我正在尝试读取以下数据集并将其转换为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编程语言有关系吗?如果没有,最好将该标签移除。 - Nils Gudat
1个回答

7

我试图读取的文件是一个包含多个对象的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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接