我有一个巨大的数据集,我需要将csv写入共享文件驱动器。 我之前做过这个并研究过相同的数据。 这次唯一的区别是我将deliminator从逗号“,”更改为分号“;”,但这不应该改变任何东西吗?
我的数据是熊猫数据帧;它有字符串列和数字列。有大约1600万行,大约20列。
这是我写的用于将数据写入块中的csv文件的函数:
def write_to_csv_in_chunks(input_data, file_path, chunk_size=1000000):
total_rows = len(input_data)
current_row = 0
while (current_row + chunk_size) < total_rows:
end_row = current_row + chunk_size
subset_data = input_data[current_row:end_row-1]
subset_data.to_csv(os.path.join(file_path, 'row '+ str(current_row) + ' to row '
+ str(end_row-1) + '.csv'))
current_row = end_row
print('finished writing file up to row ', current_row)
subset_data = input_data[current_row:]
subset_data.to_csv(os.path.join(file_path, 'row '+ str(current_row) + ' to last row.csv'),
sep=';', index=False)
return print('all files finished writing')
这是我调用函数:
write_to_csv_in_chunks(input_data=data_all, file_path=baseDir)
但是当我处理数据的步骤时,我一直收到超时错误。 (我知道这是因为我在调用csv函数之前就有了一个print语句):
Traceback (most recent call last):
File "/Users/Documents/distance_analysis serial.py", line 195, in <module>
write_to_csv_in_chunks(input_data=data_all, file_path=baseDir)
File "/Users/Documents/helping_fxns.py", line 67, in write_to_csv_in_chunks
+ str(end_row-1) + '.csv'))
File "/Users/Documents/python3/lib/python3.6/site-packages/pandas/core/frame.py", line 1524, in to_csv
formatter.save()
File "/Users/Documents/python3/lib/python3.6/site-packages/pandas/io/formats/format.py", line 1656, in save
f.close()
TimeoutError: [Errno 60] Operation timed out
非常感谢任何帮助!
PS:我对这个话题进行了研究,但却找不到任何真正的东西。也许我没有正确搜索;我也很感激任何指针。答案 0 :(得分:0)
尝试将分隔符切换回&#39;,&#39;确保它仍然以这种方式运作
假设它确实存在,很可能是格式化问题 - 一路上某处有一个额外的分号,正在弄乱表结构,结果级联会导致太多数据写入磁盘或其他一些这样的事情