gpt4 book ai didi

python - 从时间序列中删除特定日期(2 月 29 日)的最有效方法

转载 作者:行者123 更新时间:2023-11-30 22:29:28 34 4
gpt4 key购买 nike

我有一个带有 c 的 pandas DF。 10 年来的 16 万个日期观测值,并希望删除自闰年 2 月 29 日以来的所有观测值,以便能够在所有年份中进行一致的逐日比较。

带有时间戳的 df 列(使用 pd.to_datetime 创建)是“日期”。

我使用以下内容创建月份和日期列


df['月份'] = temp_data.日期.dt.月份
df['day'] = temp_data.Date.dt.day

以及以下内容为 2 月 29 日日期创建 bool 掩码:


df['leapday'] = df.apply(lambda x: True if x['month'] == 2 and x['day'] == 29
否则为假,轴 = 1)

并且可以轻松过滤这个 bool 掩码上的 df 。但在 160k 观察的 df 上,这很慢,我怀疑有一种更有效的方法来做到这一点。

有什么建议吗?

最佳答案

df['leapday'] = temp_data['Date'].dt.month.eq(2) & temp_data['Date'].dt.day.eq(29)

将于 2 月 29 日删除:

temp_data = temp_data.loc[~(temp_data['Date'].dt.month.eq(2) & temp_data['Date'].dt.day.eq(29))] 

还有一个属性可以检查闰年:

DateTimeSeries.dt.is_leap_year

关于python - 从时间序列中删除特定日期(2 月 29 日)的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46350368/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com