有条件的联合概率

2024-06-16 15:00:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我每小时从气象站获取一次风速(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() 

但它不起作用。你知道吗


Tags: 数据divdfsizelen能见度概率df1