微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在datetime.date中仅选择月份和日期

如何解决在datetime.date中仅选择月份和日期

我正在使用NYC MVA数据集。我将CRASH DATECRASH TIME列合并为格式为2017-06-26 22:00:00的单列。我现在想基于seasons添加一个分类列。为了做到这一点,我希望使用以下基本结构为每个季节名称应用一个遮罩,并在此基础上填写该列:

df[df['CRASH TIME'].dt.date < dt.date(:,1,2)]

问题在于datetime日期时间戳需要输入一年;数据集跨越数年。我想选择 all 年,而不是任何给定的年。换句话说,我只想选择月份和日期,而不要选择年份。是否可以使用datetime时间戳来做到这一点?

解决方法

假设您使用熊猫来处理数据,则可以执行以下操作

df['day'] = df['CRASH TIME'].apply(lambda r:r.day)
df['month'] = df['CRASH TIME'].apply(lambda r:r.month)

然后,您可以将它们组合或按原样使用它们。

,

我不确定是否有办法直接仅比较date的一部分,但是您可以将monthday提取到元组中并通过以下方式进行比较:

month_day_left = (df['CRASH TIME'].dt.date.month,df['CRASH TIME'].dt.date.day)
month_day_right = (dt.date.month,dt.date.day)

(2,1) < (2,2) # True
(1,10) < (2,1) # True
(2,1) < (1,30) # False

您最终可以将此比较包装到自定义函数中,并以这种方式使用:

df[ is_earlier(df['CRASH TIME'].dt,dt)]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。