将今天的日期与数据框中的日期进行比较 示例数据
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/