python - 将 dataFrame 与日期格式进行比较时的问题
问题描述
我有一系列由列组成的数据,我想提取“dateRep”在一个日期“x”之前的行
x= datetime.datetime(2020,3,25)
save_df=df[(df["countriesAndTerritories"]=="Algeria") & (to_datetime(df["dateRep"])> x)]
177 06/04/2020 6 4 2020 69 22 Algeria DZ DZA 42228429.0 Africa
178 05/04/2020 5 4 2020 80 25 Algeria DZ DZA 42228429.0 Africa
179 04/04/2020 4 4 2020 185 42 Algeria DZ DZA 42228429.0 Africa
183 31/03/2020 31 3 2020 73 4 Algeria DZ DZA 42228429.0 Africa
184 30/03/2020 30 3 2020 57 2 Algeria DZ DZA 42228429.0 Africa
185 29/03/2020 29 3 2020 45 3 Algeria DZ DZA 42228429.0 Africa
186 28/03/2020 28 3 2020 42 1 Algeria DZ DZA 42228429.0 Africa
187 27/03/2020 27 3 2020 65 4 Algeria DZ DZA 42228429.0 Africa
188 26/03/2020 26 3 2020 38 2 Algeria DZ DZA 42228429.0 Africa
202 12/03/2020 12 3 2020 0 0 Algeria DZ DZA 42228429.0 Africa
203 09/03/2020 9 3 2020 3 0 Algeria DZ DZA 42228429.0 Africa
204 06/03/2020 6 3 2020 5 0 Algeria DZ DZA 42228429.0 Africa
205 05/03/2020 5 3 2020 7 0 Algeria DZ DZA 42228429.0 Africa
206 04/03/2020 4 3 2020 2 0 Algeria DZ DZA 42228429.0 Africa
226 12/02/2020 12 2 2020 0 0 Algeria DZ DZA 42228429.0 Africa
解决方案
默认情况下,pd.to_datetime
会将字符串解释和解析04/03/2020
为月/日/年(参见文档)。但是,在您的情况下,您似乎将日/月/年作为输入格式,因此您需要将dayfirst
关键字设置为True
. 例子:
from datetime import datetime
import pandas as pd
x = datetime(2020, 3, 25)
df = pd.DataFrame({'dateRep': ['04/03/2020', '01/04/2020', '13/06/2019', '05/04/2020'],
'countriesAndTerritories': ['Algeria', 'Algeria', 'tmp', 'tmp'],
'v': [0, 1, 0, 0]})
df[(df["countriesAndTerritories"]=="Algeria") & (pd.to_datetime(df["dateRep"], dayfirst=True) > x)]
# dateRep countriesAndTerritories v
# 1 01/04/2020 Algeria 1
如果省略关键字,结果将无效:
df[(df["countriesAndTerritories"]=="Algeria") & (pd.to_datetime(df["dateRep"]) > x)]
# dateRep countriesAndTerritories v
# 0 04/03/2020 Algeria 0
最后说明:如果您想安全,请明确指定日期(时间)字符串的格式,例如在pd.to_datetime(df["dateRep"], format="%d/%m/%Y")
.
推荐阅读
- python - skimage.morphology.watershed 导致 32 位内核死亡
- azure - azure cosmos 分区键的最大值
- .net-core - 在安装了 2.1 的服务器上运行 Core 2.0.x
- php - 如何在 Laravel 中为单例创建外观?
- apache - Apache OpenNLP python 包装器 - 服务器超时
- intellij-idea - 找不到 IntelliJ 应用程序快捷方式
- webserver - 使用 Web 服务器的 pfsense DMZ 配置
- java - 如何获取硒的角度标签中存在的值
- javascript - 无法在firebase实时数据库中写入
- android - 在另一个项目中包含 APK