熊猫:如何提取一段时间内的行?

时间:2016-06-10 03:23:30

标签: python datetime pandas time-series

我有这样的数据框架。

                       value  estimated  \
dttm_timezone                                                             
2011-12-31 20:10:00  10.7891          0   
2011-12-31 20:15:00  11.2060          0   
2011-12-31 20:20:00  19.9975          0   
2011-12-31 20:25:00  15.9975          0   
2011-12-31 20:30:00  10.9975          0   
2011-12-31 20:35:00  13.9975          0   
2011-12-31 20:40:00  15.9975          0   
2011-12-31 20:45:00  11.7891          0   
2011-12-31 20:50:00  10.9975          0   
2011-12-31 20:55:00  10.3933          0   

通过使用 dttm_timezone 列信息,我想提取所有在或a 内的行的

我有1年的数据,所以如果我选择日期作为持续时间我应该分别提取365天数据,如果我选择月份,那么我应该分别提取12个月的数据。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

让我们使用

import pandas as pd
import numpy as np

tidx = pd.date_range('2010-01-01', '2014-12-31', freq='H', name='dtime')

np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(len(tidx)), tidx, ['value'])

您可以这样限制为'2010'

df['2010']

或者

df[df.index.year == 2010]

您可以通过以下方式限制特定月份:

df['2010-04']

或所有Aprils:

df[df.index.month == 4]

您可以限制在特定日期:

df['2010-04-28']

所有下午1点' s:

df[df.index.hour == 13]

日期范围:

df['2011':'2013']

df['2011-01-01':'2013-06-30']

有很多方法可以做到这一点:

df.loc[(df.index.month == 11) & (df.index.hour == 22)]

链接---> The list can go on and on. Please read the docs< --- link