【问题标题】:Boolean filter using a timestamp value on a dataframe in Python在 Python 中使用数据帧上的时间戳值的布尔过滤器
【发布时间】:2017-01-07 20:49:04
【问题描述】:

我有一个从.csv 文档创建的数据框。由于其中一列有日期,我使用 pandas read_csvparse_dates

df = pd.read_csv('CSVdata.csv', encoding = "ISO-8859-1", parse_dates=['Dates_column'])

日期范围从 2012 年到 2016 年。我想创建一个子数据框,仅包含 2014 年的行。

我设法做到这一点的唯一方法是使用两个后续的布尔过滤器:

df_a = df[df.Dates_column>pd.Timestamp('2014')]  # To create a dataframe from 01/Jan/2014 onwards.

df = df_a[df_a.Dates_column<pd.Timestamp('2015')] # To remove all the values after 01/jan/2015

有没有一种方法可以一步完成,更有效?

非常感谢!

【问题讨论】:

    标签: python pandas dataframe timestamp


    【解决方案1】:

    您可以使用dt accessor:

    df = df[df.Dates_column.dt.year == 2014]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-22
      • 2020-06-02
      • 2017-09-08
      • 1970-01-01
      • 2013-07-13
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多