按日期筛选Pandas数据帧

2024-03-28 09:22:27 发布

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


Tags: python
3条回答

根据我的经验,前面的答案是不正确的,你不能传递一个简单的字符串,需要是一个datetime对象。所以:

import datetime 
df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]

如果通过导入datetime包使日期标准化,则只需使用:

df[(df['date']>datetime.date(2016,1,1)) & (df['date']<datetime.date(2016,3,1))]  

要使用datetime包标准化日期字符串,可以使用以下函数:

import datetime
datetime.datetime.strptime

如果日期列是索引,则使用.loc进行基于标签的索引,或使用.iloc进行位置索引。

例如:

df.loc['2014-01-01':'2014-02-01']

请参见此处的详细信息http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection

如果列是而不是索引,则有两种选择:

  1. 使其成为索引(如果是时间序列数据,则为临时索引或永久索引)
  2. df[(df['date'] > '2013-01-01') & (df['date'] < '2013-02-01')]

一般说明见here

注意:.ix已弃用。

相关问题 更多 >