在 Python 中的数据帧上使用时间戳值的布尔过滤器

Pau*_*Pau 1 python timestamp dataframe pandas

我有一个从.csv文档创建的数据框。由于其中一列有日期,我使用了read_csv带有parse_dates以下内容的熊猫:

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

日期范围从 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
Run Code Online (Sandbox Code Playgroud)

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

非常感谢!

Ian*_*anS 5

您可以使用dt访问器

df = df[df.Dates_column.dt.year == 2014]
Run Code Online (Sandbox Code Playgroud)