pandas 将季节定义为6月1日至7月30日,而不是1月1日至12月31日 [英] Pandas define a seasonal year from June 1 - July 30 instead of Jan 1 - Dec 31
本文介绍了 pandas 将季节定义为6月1日至7月30日,而不是1月1日至12月31日的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有季节性的降雪数据,我想按降雪年(1954年7月1日至1955年6月30日)进行分组,而不是将一个冬季的数据分为两年(1954年1月1日至1954年12月31日和1月1日) ,1955年-1955年12月31日.)
I have seasonal snow data which I want to group by snow year (July 1, 1954 - June 30, 1955) rather than having one winter's data split over two years (January 1, 1954 - December 31, 1954 and January 1, 1955 - Dec 31, 1955.)
我修改了以下问题的代码:
I modified the code from this question:
使用熊猫从值超过定义阈值的数据框中选择特定季节(感谢Pad)
def get_season(row):
if row['date'].month <= 7:
return row['date'].year
else:
return row['date'].year + 1
df['Seasonal_Year'] = df.apply(get_season, axis=1)
有没有比我做的更好的方法了?
Is there a better way to do this than I have done?
推荐答案
I think yes, with numpy.where
:
years = df['date'].dt.year
df['Seasonal_Year'] = np.where(df['date'].dt.month <= 7, years, years + 1)
这篇关于 pandas 将季节定义为6月1日至7月30日,而不是1月1日至12月31日的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文