【发布时间】:2018-04-03 11:50:52
【问题描述】:
我有 10 个 csv 文件,每个文件的行数接近 100 万。我有一个 for 循环,它遍历文件名并创建一个数据框并连接结果。
for file in filenames:
df = pd.read_csv('file',sep=',', encoding='utf-8', dtype='object')
print (df)
concatenated_df = pd.concat(df, ignore_index=True)
我遇到内存错误并且 concat 语句间歇性地失败。 打印 df 工作正常。我的桌面上有 32 GB RAM。有没有更好的方法来解决这个问题?
【问题讨论】:
-
将它们逐块存储到数据库中
-
您的连接语句没有达到您的预期。您想将所有数据帧存储在一个列表中,然后将
concat存储在循环之外 -
我尝试在循环外使用 list_ = [] ,然后在循环内附加到列表 list_.append(df) 。然后在循环之外我有 frame = pd.concat(list_) 但看起来 concat 由于# CHECK DTYPE 而失败?和内存错误