在一天的特定时间之前的条件选择 - 熊猫数据帧

时间:2017-01-08 16:07:53

标签: python pandas

enter image description here

我有上面的数据框(片段),并希望创建一个新的数据框,这是一个条件选择,我只保留时间戳为15:00:00之前的时间的行。

我对Pandas / python还有点新鲜,并且已经坚持了一段时间:(

2 个答案:

答案 0 :(得分:2)

您可以使用DataFrame.between_time

start = pd.to_datetime('2015-02-24 11:00')
rng = pd.date_range(start, periods=10, freq='14h')

df = pd.DataFrame({'Date': rng, 'a': range(10)})  
print (df)
                 Date  a
0 2015-02-24 11:00:00  0
1 2015-02-25 01:00:00  1
2 2015-02-25 15:00:00  2
3 2015-02-26 05:00:00  3
4 2015-02-26 19:00:00  4
5 2015-02-27 09:00:00  5
6 2015-02-27 23:00:00  6
7 2015-02-28 13:00:00  7
8 2015-03-01 03:00:00  8
9 2015-03-01 17:00:00  9

df = df.set_index('Date').between_time('00:00:00', '15:00:00')
print (df)
                     a
Date                  
2015-02-24 11:00:00  0
2015-02-25 01:00:00  1
2015-02-25 15:00:00  2
2015-02-26 05:00:00  3
2015-02-27 09:00:00  5
2015-02-28 13:00:00  7
2015-03-01 03:00:00  8

如果需要排除15:00:00添加参数include_end=False

df = df.set_index('Date').between_time('00:00:00', '15:00:00', include_end=False)
print (df)
                     a
Date                  
2015-02-24 11:00:00  0
2015-02-25 01:00:00  1
2015-02-26 05:00:00  3
2015-02-27 09:00:00  5
2015-02-28 13:00:00  7
2015-03-01 03:00:00  8

答案 1 :(得分:0)

您可以查看日期列的小时数并将其用于子集:

df['date'] = pd.to_datetime(df['date'])  # optional if the date column is of datetime type
df[df.date.dt.hour < 15]