Python 熊猫在滚动日期窗口中最常见的值



我有一个包含以下数据的熊猫数据帧,我想添加一个新列,对于每个日期,返回过去 3 天内最常出现的"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 天的总"降水"总和:

df['rollingsum_precipmm']=df['precipmm'].rolling(window=3).sum()

怀疑答案围绕着这一点,但到目前为止,我还没有找到解决方案。

一如既往地感谢任何帮助

科林

要获得滚动模式,您可以执行以下操作:

from scipy.stats import mode
df['precipmm'].rolling(window=7).apply(lambda x: mode(x)[0])

要将结果显示在新列中:

df=df.assign(new_column=df['precipmm'].rolling(window=7).apply(lambda x: mode(x)[0]))

最新更新