Python 从数据帧在熊猫中创建条件概率
我有熊猫数据帧df中的概率(从2011年7月1日到2011年7月31日,在15分钟内)。 以下是摘录:Python 从数据帧在熊猫中创建条件概率,python,pandas,Python,Pandas,我有熊猫数据帧df中的概率(从2011年7月1日到2011年7月31日,在15分钟内)。 以下是摘录: Date_Time prob 0 2011-07-01 00:00:00 0.0112 1 2011-07-01 00:15:00 0.0224 2 2011-07-01 00:30:00 0.0112 3 2011-07-01 00:45:00 0.0896 4 2011-07-01 01:00:00 0.0112 5 2011-07-01
Date_Time prob
0 2011-07-01 00:00:00 0.0112
1 2011-07-01 00:15:00 0.0224
2 2011-07-01 00:30:00 0.0112
3 2011-07-01 00:45:00 0.0896
4 2011-07-01 01:00:00 0.0112
5 2011-07-01 01:15:00 0.0112
6 2011-07-01 01:30:00 0.0336
7 2011-07-01 01:45:00 0.1081
8 2011-07-01 02:00:00 0.0112
我想计算一个15分钟周期的条件概率(给定B的概率->p(A | B)),一个她四个(!)的先行者。每一行(周期)都是这样。
这意味着(我在这里使用索引来命名行):
p(4 | 0),p(4 | 1),p(4 | 2),p(4 | 3)
p(5 | 1),p(5 | 2),p(5 | 3),p(5 | 4)
等等
公式是:p(A | B)=p(A和B)/p(B,也就是(p(A)*p(B)/p(B))
对不起,我不知道该怎么做。也许有一个有用的pandas函数,我可以拟合它,但我没有找到任何东西。你可以用它来计算所有这些概率
>>> for i in range(1,5):
... probB = df.shift(i)['prob']
... probA = df['prob']
... df['prob -' + str(i)] = (probA * probB) / probB
...
>>> df
Date_Time prob prob -1 prob -2 prob -3 prob -4
0 2011-07-01 00:00:00 0.0112 NaN NaN NaN NaN
1 2011-07-01 00:15:00 0.0224 0.0224 NaN NaN NaN
2 2011-07-01 00:30:00 0.0112 0.0112 0.0112 NaN NaN
3 2011-07-01 00:45:00 0.0896 0.0896 0.0896 0.0896 NaN
4 2011-07-01 01:00:00 0.0112 0.0112 0.0112 0.0112 0.0112
5 2011-07-01 01:15:00 0.0112 0.0112 0.0112 0.0112 0.0112
6 2011-07-01 01:30:00 0.0336 0.0336 0.0336 0.0336 0.0336
7 2011-07-01 01:45:00 0.1081 0.1081 0.1081 0.1081 0.1081
8 2011-07-01 02:00:00 0.0112 0.0112 0.0112 0.0112 0.0112
如果
P(A | B)=P(A)*P(B)/P(B)
,那么A
和B
是独立的,P(A | B)=P(A)
。所以不需要计算…谢谢!!我试过了。很抱歉,我得到了:TypeError:插入列的索引与框架索引不兼容
出了什么问题?@EP1986您能用小示例数据集重现错误并发布到这里吗?