如何将多个文件读取到数据帧白化,收到'killed'错误消息?



我试图将多个csv文件获取到pandas数据框架中。该文件夹总大小为16.6 GB,由多个csv文件组成。当我运行这个一段时间后,我得到一个'Killed'错误。有办法解决这个问题吗?

代码:

def fetchFolder(folderPath):
print('Loading files...')
all_files = glob.glob(folderPath + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
li.append(df)
histTrades = pd.concat(li, axis=0, ignore_index=True)
histTrades = histTrades.set_index('date')
histTrades.index = pd.to_datetime(histTrades.index, unit='ms')
return histTrades
fetchFolder(r'/run/media/kobej/B204D33B04D300F1/Work/backtra/data/BTCUSDT')

输出
Loading files...
Killed

您的计算机上至少有16.6GB的可用内存吗?您正在尝试将所有数据加载到内存中,因此,如果您的计算机上没有那么多可用的RAM,则不可能这样做。

试着找出一种方法,你可以只处理你的数据块,把结果保存到磁盘上,然后在其他块上操作。

另一个注意事项-如果您的计算机上有那么多可用的RAM,您仍然必须告诉您的IDE允许使用这么多RAM。有这样的设置,但如果你的计算机上没有那么多可用内存,这个事实是无关紧要的。

你有两个选择。

选项- 1:使用库来处理像dask这样的大型csv文件。如下图所示使用

import dask.dataframe as dd
df = dd.read_csv(file_name.csv)

选项-2:以'n'行为块处理数据

#Process 5000 rows at a time
chunk_csv = pd.read_csv('fileName.csv', iterator=True, chunksize=5000)  
df = pd.concat(chunk_csv, ignore_index=True)

相关内容

最新更新