鉴于此测试数据:
import pandas as pd
import numpy as np
data = {'date': ['2014-05-01 18:47:05.069722', '2014-05-01 18:47:05.119994', '2014-05-02 18:47:05.178768', '2014-05-02 18:47:05.230071', '2014-05-02 18:47:05.230071', '2014-05-02 18:47:05.280592', '2014-05-03 18:47:05.332662', '2014-05-03 18:47:05.385109', '2014-05-04 18:47:05.436523', '2014-05-04 18:47:05.486877'],
'battle_deaths': [34, 25, 26, 15, 15, 14, 26, 25, 62, 41], 'prisioners': [3, 4, 3, 2, 2, 6, 4, 5, 2, 8]}
df = pd.DataFrame(data, columns = ['date', 'battle_deaths', 'prisioners'])
设置索引日期时间:
df = df.set_index(pd.DatetimeIndex(df['date']), drop=True)
del df['date']
当我想重新采样到毫秒时它可以工作,但它需要太长时间......
timeit df.resample('1L').sum()
我猜是因为正在用 NaN 数据聚合所有毫秒,但是当我放弃它时..
timeit df.resample('1L').sum().dropna()
它需要更长的时间
再次猜测 dropna 是在最后完成的......有什么方法可以通过丢弃 NaN 样本来加速这个过程?