Pyp*_*ype 5 python windows csv pandas
我正在编写一个 Python 脚本来为我做一些数据工作,我有一个关于性能的问题。我正在运行 Python 3.6 和最新的 pandas 包。操作系统是 Windows 10。无论如何,这是要点 - 我正在以这种方式读取大约 7100 万行和 39 列的 SAS 表:
want = []
for chuck in pd.read_sas('my_sas_table.sas7bdat',chunksize = 50000,encoding='cp1252'):
chuck['DT_COL'] = pd.to_timedelta(chuck['DT_COL'], unit='D') + pd.Timestamp('1960-1-1')
want.append(chuck)
Run Code Online (Sandbox Code Playgroud)
阅读该表大约需要 35-40 分钟。如果我要进入 SAS,请将表导出为 CSV,然后执行以下操作
pd.read_csv('my_sas_table.csv')
Run Code Online (Sandbox Code Playgroud)
只需要大约5分钟。我不想这样做,因为这个脚本将是自动化的 - 而且我试图避免在 Python 之外做任何事情。我可能缺少什么技巧吗?或者有人可以解释这种性能上的巨大差异吗?
我知道更改块上的日期列可能会稍微减慢读取速度 - 但我只是不相信它会导致
pd.read_sas()
Run Code Online (Sandbox Code Playgroud)
慢 8 倍
pd.read_csv()
Run Code Online (Sandbox Code Playgroud)
但我不是专家,我希望你们中的一位可能是!
谢谢!
| 归档时间: |
|
| 查看次数: |
7687 次 |
| 最近记录: |