我为这个问题找到了很多答案,但没有找到我想具体做的事情。我有很多csv文件,有些行超过200mo,总共约70Go的数据,我想将它们转换为hdf5文件。
我找到了创建大数据框并将它们全部连接在一起的方法,但是使用此处显示的解决方案,我的数据太大而无法容纳单个数据框。https://datascience.stackexchange.com/questions/53125/file-converter-from-csv-to-hdf5
我正在尝试对每个文件执行1个数据帧的操作,然后将它们全部转换为hdf5文件,以使我拥有相同数量的h5文件和csv,但我不知道这是正确的解决方案,因为我没有认为我的计算机可以将所有这些信息保存在内存中。
类似于在另一个SO线程上发现的东西,可以在转换之前将所有csv放在一个数据帧中:
from os import listdir
filepaths = [f for f in listdir("./data") if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths))
由于文件过多/太重而无法使用。
如果您知道其他解决方案,请帮助,
谢谢
不使用列表理解。只需使用一个读取,转换和写入每个文件的循环,这样就不会得到太多文件或内存不足。
编辑1:执行类似操作:
for f in listdir("./data"):
if f.endswith('.csv'):
pd.read_csv(f).to_hdf(...)
看看这个link。