繁体   English   中英

如何在日期列中 select 一个月的最后一天?

[英]How can I select the last day of the month in a date column?

我有一个名为“日期”的列,其中包含一年中每一天的数据,我只想获取与该月最后一天对应的行,我该怎么做?

在此处输入图像描述

假设您使用的是 pandas,您可以使用日期时间 package来检查这一点。

由于某些月份的天数不同,我用它来检查第二天的日期,如果下一个日期的日期等于 1,那么我们所在的日期就是该月的最后一天。

from datetime import date, timedelta
import pandas

def check_last_month_day(day):
    next_day = date.fromisoformat(day) + timedelta(days=1)
    return next_day.day == 1

function 接收日期格式的字符串,从该字符串创建日期 object,然后在日期中添加一天。 执行此操作后,它只返回一个 boolean 来检查下一个日期的日期是否等于 1。例如:

>>> check_last_month_day('2020-01-30')
False
>>> check_last_month_day('2020-01-31')
True

因此,现在您可以使用此 function 过滤 dataframe 行:(假设您将 dataframe 命名为 df)

df_filtered = df[ df['date'].apply(check_last_month_day) ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM