我每小时从气象站获取一次风速(sknt)和能见度(vsby)数据。我可以用这个计算风速和能见度的联合概率
df1=df.groupby('vsby').size().div(len(df))
df2=df.groupby(['vsby', 'sknt']).size().div(len(df)).div(vprob, axis=0, level='vsby')
vsby sknt 0
0 6.0 15.0 1.000000
1 10.0 0.0 1.000000
2 11.0 7.0 0.500000
3 11.0 16.0 0.500000
4 13.0 12.0 1.000000
5 14.0 3.0 0.500000
6 14.0 4.0 0.250000
7 14.0 12.0 0.250000
8 16.0 0.0 0.099796
9 16.0 2.0 0.209776
10 16.0 3.0 0.173116
11 16.0 4.0 0.134420
12 16.0 5.0 0.175153
13 16.0 6.0 0.024440
14 16.0 7.0 0.032587
15 16.0 8.0 0.018330
16 16.0 9.0 0.024440
17 16.0 10.0 0.024440
18 16.0 11.0 0.026477
19 16.0 12.0 0.016293
20 16.0 13.0 0.014257
21 16.0 14.0 0.008147
22 16.0 15.0 0.008147
23 16.0 16.0 0.004073
24 16.0 17.0 0.004073
25 16.0 18.0 0.002037
我有兴趣找出所有能见度记录下风速大于等于x的概率。例如,vsby 16,概率=(0.018330+0.024440+0.024440+0.026477+0.016293+0.014257+0.008147+0.008147+0.004073+0.004073+0.002037)
我试过了
df2.loc[df2.sknt >= 7, df2.vsby].sum()
但它不起作用。你知道吗
试试下面的。要使用
.loc
选择列,只需提供名称即可。你知道吗相关问题 更多 >
编程相关推荐