如何选择数据帧中的特定时间

2024-05-17 14:59:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从数据中选择一个时间范围,但在这段代码中找不到选择时间范围的方法。 如何修复代码? 谢谢

我看到了这个密码

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][es.index > dt.datetime(1999, 1, 1)]}) 

从我的课本上。 我要更正的时间是从(1999,1,1)到(2016,1,1)

我尝试了几种代码来更改时间,例如:

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][dt.datetime(2016, 1, 1)> es.index > dt.datetime(1999, 1, 1)]})

但失败了。有人能救我吗


Tags: 数据方法代码密码dataframedatadatetimeindex
2条回答

此语法应适用于:

data = pd.DataFrame({'EUROSTOXX': es['SX5E'][(es.index > datetime(1999, 1, 1)) & (es.index < dt.datetime(2016, 1, 1))]})

仅举一个例子说明如何选择时间范围:

数据帧示例:

>>> df
                 date
0 2001-01-01 00:00:00
1 2001-01-01 01:00:00
2 2001-01-01 02:00:00
3 2001-01-01 03:00:00
4 2001-01-01 04:00:00
5 2001-01-01 05:00:00
6 2001-01-01 06:00:00
7 2001-01-01 07:00:00
8 2001-01-01 08:00:00
9 2001-01-01 09:00:00

您可以通过以下方式获得它:

>>> df[(df['date'] > '2001-01-01 00:00:00') & (df['date'] <= '2001-01-01 03:00:00')]
                 date
1 2001-01-01 01:00:00
2 2001-01-01 02:00:00
3 2001-01-01 03:00:00

其次,将date列设置为索引,然后应用loc方法:

>>> df = df.set_index(df['date'])
>>> df
                                   date
date
2001-01-01 00:00:00 2001-01-01 00:00:00
2001-01-01 01:00:00 2001-01-01 01:00:00
2001-01-01 02:00:00 2001-01-01 02:00:00
2001-01-01 03:00:00 2001-01-01 03:00:00
2001-01-01 04:00:00 2001-01-01 04:00:00
2001-01-01 05:00:00 2001-01-01 05:00:00
2001-01-01 06:00:00 2001-01-01 06:00:00
2001-01-01 07:00:00 2001-01-01 07:00:00
2001-01-01 08:00:00 2001-01-01 08:00:00
2001-01-01 09:00:00 2001-01-01 09:00:00

现在使用loc

>>> df.loc['2001-01-01 00:00:00':'2001-01-01 03:00:00']
                                   date
date
2001-01-01 00:00:00 2001-01-01 00:00:00
2001-01-01 01:00:00 2001-01-01 01:00:00
2001-01-01 02:00:00 2001-01-01 02:00:00
2001-01-01 03:00:00 2001-01-01 03:00:00

希望能有帮助

相关问题 更多 >