chr*_*b10 2 python datetime pandas
我有一个带有 c 的 pandas DF。10 年来的 16 万个日期观测值,并希望删除闰年 2 月 29 日以来的所有观测值,以便能够在所有年份中进行一致的逐日比较。
带有时间戳的 df 列(使用 pd.to_datetime 创建)是“日期”。
我使用以下内容创建月份和日期列
df['month'] = temp_data.Date.dt.month
df['day'] = temp_data.Date.dt.day
以及以下内容来创建 2 月 29 日日期的布尔掩码:
df['leapday'] = df.apply(lambda x: True if x['month'] == 2 and x['day'] == 29
else False, axis = 1)
并且可以轻松过滤这个布尔掩码上的 df 。但在 160k 观察的 df 上,这很慢,我怀疑有一种更有效的方法来做到这一点。
有什么建议么?
df['leapday'] = temp_data['Date'].dt.month.eq(2) & temp_data['Date'].dt.day.eq(29)
Run Code Online (Sandbox Code Playgroud)
2 月 29 日删除:
temp_data = temp_data.loc[~(temp_data['Date'].dt.month.eq(2) & temp_data['Date'].dt.day.eq(29))]
Run Code Online (Sandbox Code Playgroud)
还有一个属性可以检查闰年:
DateTimeSeries.dt.is_leap_year
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2553 次 |
| 最近记录: |