我想添加一列到CSV文件,这是相同文件的两个其他列的差异,我使用Python(Pandas)来做这件事,这是我做的:
import pandas as pd
row = ['times1','times2']
for df1 in pd.read_csv('C:/SET/parti_no_diff.CSV',skipinitialspace=True, usecols=row, chunksize=10**7):
df1['time_difference'] = (df1['times2'].astype('datetime64[s]')-df1['times1'].astype('datetime64[s]')).abs()
df1.to_csv('E:/SET/parti_with_diff_seconds.csv',mode='a')
我使用的机器有12GB的RAM,和2TB(5200RPM)的外部硬盘(输入和输出不在同一个硬盘上),程序需要超过24小时,我如何优化它?
1条答案
按热度按时间f4t66c6m1#
老实说,Python内置的读写文本文件的功能是最佳选择,一次只读入一行,添加额外的列,然后将其追加到输出文本文件中。
一次只读入一行,你想怎么修改就怎么修改,然后把它附加到输出文件中。这会比你想象的要快。你可以用tqdm之类的东西来监控进度。
例如: