Rom*_*uin 6 python csv pickle pandas
我正在使用 读取 800 Mb CSV 文件pandas.read_csv,然后使用原始 Pythonpickle.dump(datfarame)保存它。结果是 4 Gb pkl 文件,因此 CSV 大小乘以 5。
我希望 pickle 能够压缩数据而不是扩展数据。另外,因为我可以对 CSV 文件执行 gzip,将其压缩到 200 Mb,然后除以 4。
我愿意加快程序的加载时间,并认为酸洗会有所帮助,但考虑到磁盘访问是主要瓶颈,我了解我宁愿必须压缩文件,然后使用压缩选项来加快pandas.read_csv速度加载时间。
那是对的吗?
pickling pandas dataframe 扩展数据大小是否正常?
您通常如何加快加载时间?
使用 pandas 加载的数据大小限制是多少?
小智 2
将 CSV 文件存储在某种数据库中并对其执行操作可能最符合您的利益,而不是像Kathirmani建议的那样将 CSV 文件加载到 RAM。您将看到加载时间的加速符合您的预期,这仅仅是因为您每次加载脚本时都没有填满 800 Mb 的 RAM。
文件压缩和加载时间是您似乎想要完成的两个相互冲突的元素。压缩CSV文件并加载会花费更多时间;您现在添加了必须解压缩文件的额外步骤,但这并不能解决您的问题。
考虑将数据传送到sqlite3数据库的先导步骤,如下所述:使用 Python 将 CSV 文件导入 sqlite3 数据库表。
您现在很高兴能够查询数据的子集并将其快速加载到 a 中pandas.DataFrame以供进一步使用,如下所示:
from pandas.io import sql
import sqlite3
conn = sqlite3.connect('your/database/path')
query = "SELECT * FROM foo WHERE bar = 'FOOBAR';"
results_df = sql.read_frame(query, con=conn)
...
Run Code Online (Sandbox Code Playgroud)
相反,您可以pandas.DataFrame.to_sql()保存这些以供以后使用。
| 归档时间: |
|
| 查看次数: |
10036 次 |
| 最近记录: |