如何从数据帧计算事件的相对频率?

How to calculate relative frequency of an event from a dataframe?

我有一个包含特定时期温度数据的数据框。有了这些数据,我想计算 8 月气温高于 20° 以及 1 月气温低于 2° 的相对频率。我已经设法将这两列提取到单独的数据框中,以获取每个温度事件的计数,并使用归一化函数以百分比形式获取每个值的频率(参见代码)。

df_temp1[df_temp1.aug >=20]
df_temp1[df_temp1.jan <= 2]

df_temp1['aug'].value_counts()
df_temp1['jan'].value_counts()

df_temp1['aug'].value_counts(normalize=True)*100
df_temp1['jan'].value_counts(normalize=True)*100

我没能计算出 aug>=20、jan<=2 以及 aug>=20 AND jan<=2 和 aug>=20 OR jan<=2 的相对频率. 也许有人可以帮我解决这个问题。谢谢

我会尝试这样的事情:

proprortion_of_augusts_above_20 = (df_temp1['aug'] >= 20).mean()
proprortion_of_januaries_below_20 = (df_temp1['jan'] <= 2).mean()

这里分两步计算。首先,df_temp1['aug'] >= 20 创建一个布尔数组,True 代表大于 20 的月份,False 代表不大于 20 的月份。

然后,mean() 将 True 和 False 重新解释为 1 和 0。平均值是满足条件的月份的百分比除以 100。

顺便说一句,我会在问题中推荐 posting your data,这样人们可以通过回答来检查他们的解决方案是否有效。