Jan*_*ará 4 python datetime date pandas
我的 DataFrame 的值如下所示
Date Value
1 2020-04-12 A
2 2020-05-12 B
3 2020-07-12 C
4 2020-10-12 D
5 2020-11-12 E
Run Code Online (Sandbox Code Playgroud)
我只需要创建新的 DataFrame,其中包含从今天(7.12)到未来的日期(在本例中仅第 3、4 和 5 行)。
我使用这段代码:
df1= df[df["Date"] >= date.today()]
Run Code Online (Sandbox Code Playgroud)
但它给了我TypeError: dtype=datetime64[ns] 和 date 之间的比较无效
我究竟做错了什么?谢谢你!
使用列.dt.date
上的df['Date']
。然后您将日期与日期进行比较。所以:
df1 = df.loc[df['Date'].dt.date >= date.today()]
Run Code Online (Sandbox Code Playgroud)
这会给你:
Date Value
3 2020-12-07 C
4 2020-12-10 D
5 2020-12-11 E
Run Code Online (Sandbox Code Playgroud)
还要确保您的日期格式实际上是正确的。例如通过 printdf['Date'].dt.month
看到它给出了 all12
的。如果不是,则您的日期字符串未正确转换。在这种情况下,请df['Date'] = pd.to_datetime(df['Date'], format="%Y-%d-%m")
在创建 DataFrame 后将日期列转换为正确的日期时间格式。