我很难将多行分隔的 JSON 文件加载到单个熊猫数据框中。这是我正在使用的代码:
import os, json
import pandas as pd
import numpy as np
import glob
pd.set_option('display.max_columns', None)
temp = pd.DataFrame()
path_to_json = '/Users/XXX/Desktop/Facebook Data/*'
json_pattern = os.path.join(path_to_json,'*.json')
file_list = glob.glob(json_pattern)
for file in file_list:
data = pd.read_json(file, lines=True)
temp.append(data, ignore_index = True)
当我查看 file_list
时,似乎所有文件都在加载,但无法弄清楚如何将每个文件放入数据帧中。大约有 50 个文件,每个文件中有几行。
原文由 onetap 发布,翻译遵循 CC BY-SA 4.0 许可协议
将最后一行更改为:
我们必须这样做的原因是因为追加没有发生。 append 方法不修改数据框。它只是返回一个带有追加操作结果的新数据框。
编辑:
自从写下这个答案以来,我了解到你永远不应该在循环中使用
DataFrame.append
因为它会导致二次复制(参见 这个答案)。您应该做的是首先创建一个数据帧列表,然后使用
pd.concat
在一个操作中将它们全部连接起来。像这样:这种替代方法应该快得多。