我有一个包含以下数据的pandas数据帧,我想添加一个新列,在每个日期上返回前三天内出现最频繁的“weather_type”。如果结果相同,则应返回最近的“ weather_type”。
d = {'date': ['17/02/2017', '18/02/2017', '19/02/2017', '20/02/2017',
'21/02/2017', '22/02/2017'], 'precipmm': [1, 0, 3, 2, 7, 8], 'weather_type':
['rain', 'sun', 'rain', 'snow', 'snow', 'rain']}
df = pd.DataFrame(data=d)
df['date']=pd.to_datetime(df['date'], format='%d/%m/%Y')
df['rollingsum_precipmm']=df['precipmm'].rolling(window=3).sum()
我已经成功创建了一个新列,其中包含过去3天内“precipmm”的总和,使用以下代码:
df['rollingsum_precipmm']=df['precipmm'].rolling(window=3).sum()
我认为答案围绕着这个问题,但是我还没有找到解决办法。
一如既往地感谢您的帮助。
Colin