Computing the conditional probability based on consecutive occurences of numbers in dataframe(基于数据帧中数字连续出现的条件概率计算)
本文介绍了基于数据帧中数字连续出现的条件概率计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框,它有一个多索引(股票代码和日期),其中有一列对每只股票进行计数,在每一行中,1或0在"Dummy&Quot;"列中出现了多少次。我有一个下面的示例。
df = pd.DataFrame( {
'stock': ['AAPL', 'AAPL', 'AAPL','AAPL', 'MSFT', 'MSFT','MSFT', 'MSFT'],
'datetime': ['2015-01-02', '2015-01-03', '2015-01-04', '2015-01-05', '2015-01-02', '2015-01-03', '2015-01-04', '2015-01-05'],
'Dummy': [0, 0, 1, 1, 1,1, 0, 1],
'Counter': [-1, -2, 1, 2, 1, 2, -1, 1]})
df['datetime'] = pd.to_datetime(df['datetime'])
df.set_index(['stock', 'datetime'], inplace =True)
我想计算一个条件概率(对于每个数字),它回答了这个问题:
假设我在计数器列中观察到一行带有1,那么它后面跟着2的次数是多少,后面跟-1的次数是多少。
在上面的示例中,有3个1的实例。最后一个后面没有任何内容,所以应该忽略它,所以从技术上讲只有2个实例。这两个参数后面都跟有2,因此1的输出应该如下所示:result = pd.DataFrame( {
'cond prob': ['1', '2', '-1','-2'],
'1': [0, 2, 0,0],
'2': [0, 0, 1,0],
'-1': [1, 0, 0, 1],
'-2': [1, 0, 0, 0]})
result.set_index(['cond prob',], inplace =True)
基本上,我想知道每个号码有多少次
后跟任何其他数字(按库存分组)。
此问题是与此帖子相关的后续问题:
Counting the number of consecutive occurences of numbers in dataframe with multi index daily data
推荐答案
我们可以groupby
和shift
Counter
列,然后使用crosstab
创建频率表来统计某个数字后面紧跟其他数字的次数
table = pd.crosstab(df['Counter'], df.groupby(level=0)['Counter'].shift(-1))
>>> table
Counter -2.0 -1.0 1.0 2.0
Counter
-2 0 0 1 0
-1 1 0 1 0
1 0 0 0 2
2 0 1 0 0
如果您还需要计算概率,我们可以先使用values_counts
计算总的可能结果,然后将有利结果除以所有可能的结果
probs = table.div(df['Counter'].value_counts(), axis=0)
>>> probs
Counter -2.0 -1.0 1.0 2.0
-2 0.0 0.0 1.0 0.000000
-1 0.5 0.0 0.5 0.000000
1 0.0 0.0 0.0 0.666667
2 0.0 0.5 0.0 0.000000
这篇关于基于数据帧中数字连续出现的条件概率计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:基于数据帧中数字连续出现的条件概率计算


猜你喜欢
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 沿轴计算直方图 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01