【发布时间】:2021-01-12 18:34:19
【问题描述】:
我正在尝试将 OHLCV(股票定价)数据从数据框中保存到单个压缩 csv 文件中,如下所示。我的测试数据是ohlcvData.csv,我用
将其读入数据框import pandas as pd
df = pd.read_csv('ohlcvData.csv', header=None, names=['datetime', 'open', 'high', 'low', 'close', 'volume'], index_col='datetime')
当我尝试将它写入这样的 zip 文件时(遵循stackoverflow.com/questions/55134716):
df.to_csv('ohlcvData.zip', header=False, compression=dict(method='zip', archive_name='ohlcv.csv'))
我收到以下警告...
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\zipfile.py:1473: UserWarning: Duplicate name: 'ohlcv.csv' return self._open_to_write(zinfo, force_zip64=force_zip64)
生成的 ohlcvData.zip 文件包含两个文件,均名为 ohlcv.csv,每个文件都包含部分结果。
当我尝试将 zip 文件读回数据框时...
dfRead = pd.read_csv(ohlcvData.zip', header=None, names=['datetime', 'open', 'high', 'low', 'close', 'volume'], index_col='datetime')
...我收到以下错误...
*File "C:\Users\jeffm\AppData\Roaming\Python\Python37\site-packages\pandas\io\common.py", line 618, in get_handle
"Multiple files found in ZIP file. "
ValueError: Multiple files found in ZIP file. Only one file per ZIP: ['ohlcv.csv', 'ohlcv.csv']*
但是,当我将输入文件中的行数从 200 减少到大约 175 时(对于这个文件结构,我必须根据数据删除多少行略有不同),它可以工作并生成一个 zip 文件,包含一个 csv 文件,可以将其加载回数据帧而不会出错。我尝试了许多不同的文件,具有不同的数据和格式,但我仍然得到相同的结果——任何超过(大约)175 行的文件都会失败,而任何文件更少的文件都可以正常工作。因此,它看起来像是在一定大小后拆分文件,但从docs 来看,似乎没有这样的设置。对此的任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: pandas dataframe csv duplicates zip