python - 如何在 pandas 数据框中选择时间段?

标签 python time pandas dataframe

正如问答中所解释的:python pandas dataframe slicing by date conditions我想在 pandas 数据框中选择时间段。给出的答案非常适合按天划分,但如果您不想只查看时间,则不起作用。

这是我想要做的示例:

2013-12-12 10:51:51
2013-12-12 11:11:01
2013-12-12 11:19:22
2013-12-12 11:36:48
2013-12-12 11:36:48

hour_frame(df, 11,00,00,11,30,00) # 我想选择 11h00 到 11h30 之间的项目

2013-12-12 11:11:01
2013-12-12 11:19:22

我尝试使用答案中给出的代码(参见上面的链接)

def hour_frame(df,start_hour,start_minute,end_hour,end_minute):

    start_time = pd.Timestamp('%d:%d:%d' % (start_hour, start_minute, 0)).strftime('%Y-%m-%d %H:%M:%S')
    end_time = pd.Timestamp('%d:%d:%d' % (end_hour, end_minute, 0)).strftime('%Y-%m-%d %H:%M:%S')

    return df.ix[start_time:end_time]

但它返回一个空数据帧,我查看了 start_timeend_time 的值,它们是:

start_time = 2014-07-09 11:00:00
end_time =   2014-07-09 11:30:00

所以我的问题是,当我创建字符串时,它会自动填充日期与当前日期,并且我不知道如何仅查看小时来比较日期。

最佳答案

也许你可以做这样的事情:

# create a new column with only time from your date column
df['time'] = df['date'].apply(lambda x: x.time())

#filter based on the time column
mask = (df['time'] > datetime.time(11,00)) & (df['time'] < datetime.time(11,30))
df = df[mask]

关于python - 如何在 pandas 数据框中选择时间段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649174/

相关文章:

python - 如何给 `ete3` 树上的树叶上色? ( python 3)

Python:数组与列表

c++ - Unixtime 转换为可比时间

ruby-on-rails - Ruby:将时间和星期几应用于日期时间

c - 函数的隐式声明 'clock'

python - 使用 DataFrame.sort_index(axis=1) 时出现意外的顺序。第一列最后列出

Python:尝试在 CSV 中移动数据,但没有看到所需的结果

Python Pandas : Selecting previous row of matching row

python - 如何在行值而不是列值中绘制箱线图

python - 具有 Python 相关信息的前五名表