【发布时间】:2018-12-17 20:14:34
【问题描述】:
我有一个包含数百万行的 CSV 文件,格式如下:
Amount,Price,Time
0.36,13924.98,2010-01-01 00:00:08
0.01,13900.09,2010-01-01 00:02:04
0.02,13907.59,2010-01-01 00:04:54
0.07,13907.59,2010-01-01 00:05:03
0.03,13925,2010-01-01 00:05:41
0.03,13920,2010-01-01 00:07:02
0.15,13910,2010-01-01 00:09:37
0.03,13909.99,2010-01-01 00:09:58
0.03,13909.99,2010-01-01 00:10:03
0.14,13909.99,2010-01-01 00:10:03
我想先过滤这些数据,然后对过滤后的数据进行一些计算。我使用 pandas data = pd.read_csv() 导入它,以获取 DataFrame。
然后我将Time 列转换为TimeDelta 列(我不确定这对于我想做的事情是必要的),我将时间差写入时间2010-01-01 00:00:00 使用
data['TimeDelta'] = pd.to_timedelta(pd.to_datetime(data.Date)-pd.Timedelta(days=14610))/np.timedelta64(1, 'm')
这是我挣扎的部分。我想要一个返回新 DataFrame 的函数,我只想要每 n 分钟后的第一行,其中 n 是用户定义的整数。
例如。如果n=5,我的数据所需的此函数输出将是:
Amount,Price,Time
0.36,13924.98,2010-01-01 00:00:08
0.07,13907.59,2010-01-01 00:05:03
0.03,13909.99,2010-01-01 00:10:03
n=3 的输出将是:
Amount,Price,Time
0.36,13924.98,2010-01-01 00:00:08
0.02,13907.59,2010-01-01 00:04:54
0.15,13910,2010-01-01 00:09:37
我曾尝试使用floor 和其余的% 来执行此操作,但作为 Python 的初学者,我无法使其正常工作。
【问题讨论】:
标签: python pandas datetime filtering