gpt4 book ai didi

python - 过滤 Pandas 中的时间序列数据帧以给出每分钟的第一个数据点

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:13 26 4
gpt4 key购买 nike

我有高频外汇数据,每分钟有多个数据点。对于我的分析,我对每分钟 1 个数据点感到满意。

因此我需要每分钟选择第一个数据点并保留它;并在同一分钟内丢弃其他数据点。

附图中我有一个示例数据集和预期结果。 fx dataset and expected outcome

创建数据集的代码如下。

 import pandas as pd

date_time = ['20120201 170005600', '20120201 170035600', '20120201 170058600', '20120201 170105600',
'20120201 170135600', '20120201 170158600', '20120201 170205600', '20120201 170235600',
'20120201 170258600', '20120201 170305600', '20120201 170335600', '20120201 170358600',
'20120201 170405600', '20120201 170435600', '20120201 170458600']

bid = [1.306600, 1.306700, 1.306800, 1.306900, 1.307000, 1.307100, 1.307200, 1.307300,
1.307400,1.307500, 1.307600, 1.307700, 1.307800, 1.307900, 1.308000]
ask =[1.306770, 1.306870, 1.306970, 1.307070, 1.307170, 1.307270, 1.307370, 1.307470,
1.307570, 1.307670, 1.307770, 1.307870, 1.307970, 1.308070, 1.308170]


df = pd.DataFrame({'date_time':date_time, 'bid':bid, 'ask':ask})

最佳答案

通过to_datetime创建DatetimeIndexDataFrame.set_index , s 可能的频率更改为 DataFrame.asfreq :

df['date_time'] = pd.to_datetime(df['date_time'], format='%Y%m%d %H%M%S%f')

df1 = df.set_index('date_time').asfreq('T')
print (df1)
bid ask
date_time
2012-02-01 17:00:05.600 1.3066 1.30677
2012-02-01 17:01:05.600 1.3069 1.30707
2012-02-01 17:02:05.600 1.3072 1.30737
2012-02-01 17:03:05.600 1.3075 1.30767
2012-02-01 17:04:05.600 1.3078 1.30797

或者使用DataFrame.resample第一个:

df1 = df.set_index('date_time').resample('T').first()

关于python - 过滤 Pandas 中的时间序列数据帧以给出每分钟的第一个数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57019625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com