python - 将今天的日期与数据框中的日期进行比较

标签 python python-2.7 pandas datetime dataframe

将今天的日期与数据框中的日期进行比较 示例数据

id        date
1        1/2/2018
2        1/5/2019
3        5/3/2018
4        23/11/2018

期望的输出

id        date
2        1/5/2019
4        23/11/2018

我当前的代码

dfdateList = pd.DataFrame()
dfDate= self.df[["id", "date"]]
today = datetime.datetime.now()
today = today.strftime("%d/%m/%Y").lstrip("0").replace(" 0", "")
expList = []
for dates in dfDate["date"]:
    if dates <= today:
        expList.append(dates)

dfdateList = pd.DataFrame(expList)   

目前我的代码正在打印每一行,尽管有条件,有人可以指导我吗?谢谢

最佳答案

Pandas 对日期时间上的一大类操作具有 native 支持,因此这里的一个解决方案是使用 pd.to_datetime要将日期从字符串转换为 pandas 的日期时间表示形式,pd.Timestamp ,然后只需根据当前日期创建一个掩码:

df['date'] = pd.to_datetime(df['date'], dayfirst=True)
df[df['date'] > pd.Timestamp.now()]

例如:

In [34]: df['date'] = pd.to_datetime(df['date'], dayfirst=True)

In [36]: df
Out[36]:
   id       date
0   1 2018-02-01
1   2 2019-05-01
2   3 2018-03-05
3   4 2018-11-23

In [37]: df[df['date'] > pd.Timestamp.now()]
Out[37]:
   id       date
1   2 2019-05-01
3   4 2018-11-23

关于python - 将今天的日期与数据框中的日期进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52686748/

相关文章:

python - 难以从 Pandas 数据框中删除多列

python - 如何使用Python一次删除多个文件夹?

google-app-engine - 处理 appengine 中的子域

Python 到 C 代码?

python - 不同的切片对相同的元素给出不同的不等式

python - 查询以获取具有某些标签 y 的 x 问题

Apache/mod_wsgi 进程意外终止

pandas - 如何从 pandas 数据框中随机删除 10% 的属性值

Python:数据帧列表中的标准差

python - 使用 Pandas 导入时,如何跳过 .txt 文件中值多于/少于 6 的行