我正在用pandas和python在excel中做一些工作。我有这样的东西。在
ID Actual Date
738564 01/21/2016
274628 02/12/2016
571749 03/30/2016
718563 10/01/2016
984739 11/30/2016
938511 12/24/2016
103216 07/16/2014
446754 08/06/2015
135654 02/01/2017
135614 01/16/2017
133346 01/16/2011
234682 N/A
238756 (none)
所以我需要按日期过滤,但我只需要过滤2016年11月之前的年份日期(所以我需要过滤2014年、2015年以及2016年1月到octuber之间)。所以基本上在过滤器之后,我会有这样的东西
^{pr2}$我使用的代码是:
regex = r"[0-9]{2}/[0-9]{2}/2016"
df = pd.read_csv("Request.csv", keep_default_na=False)
df1 = df.loc[(df["Actual Date"].str.contains(r'[0-9]{2}/[0-9]{2}/2016') &
(df["Actual Date"].str.contains("2015")) &
(df["Actual Date"].str.contains("2014")) &
(df["Actual Date"].str.contains("2011")) &
(df["Actual Date"].str.contains("(None)")) &
(df["Actual Date"].str.contains("N/A"))))]
但当我运行代码时,我只收到了2011年、2014年和2015年。正则表达式在2016年不起作用。 很抱歉,我会很感激你的英语
RegEx是一个非常强大的工具,但在这种情况下,有一种更好的方法:
让我们转换它
^{pr2}$datetime
数据类型:使用boolean indexing筛选:
使用.query()方法筛选:
更新:如果要在string dtype中保留原始
Date
:首先添加一个新的
datetime
列:过滤:
相关问题 更多 >
编程相关推荐