首页 > 解决方案 > 仅基于天过滤日期时间时间戳列?

问题描述

我的 df 有一个 col 作为

         Time 
2017-10-04 19:00:00
2017-10-03 13:00:00
2017-10-04 04:00:00
2017-10-10 12:00:00

如果我想过滤 2017 年 10 月 10 日或之后的行或仅基于天数而不考虑时间的日期范围,这可能吗?

谢谢

标签: pythonpython-3.xpandas

解决方案


如果将Time列设置为索引,则可以按如下方式切片:

df.set_index('Time', inplace=True)
  • 具有给定日期的数据框date1df = df[date1]
  • 从日期date1开始的数据框:df = df[date1:]
  • 数据框直到日期date1df = df[:date1]
  • 开始日期和结束日期之间的数据框 df = df[start_date:end_date]

如果您不想Time用作索引,您可以执行相同的操作,但在此类列上使用稍微不同的 sintax:

  • 具有给定日期的数据框date1df = df[df['Time]==date1]
  • 从日期date1开始的数据框:df = df[df['Time]>=date1]
  • 数据框直到日期date1df = df[df['Time]<date1]
  • 开始日期和结束日期之间的数据框 df = df[df['Time].between(start,end)]

推荐阅读