<legend id='o5YJh'><style id='o5YJh'><dir id='o5YJh'><q id='o5YJh'></q></dir></style></legend>
    <i id='o5YJh'><tr id='o5YJh'><dt id='o5YJh'><q id='o5YJh'><span id='o5YJh'><b id='o5YJh'><form id='o5YJh'><ins id='o5YJh'></ins><ul id='o5YJh'></ul><sub id='o5YJh'></sub></form><legend id='o5YJh'></legend><bdo id='o5YJh'><pre id='o5YJh'><center id='o5YJh'></center></pre></bdo></b><th id='o5YJh'></th></span></q></dt></tr></i><div id='o5YJh'><tfoot id='o5YJh'></tfoot><dl id='o5YJh'><fieldset id='o5YJh'></fieldset></dl></div>
      <tfoot id='o5YJh'></tfoot>
        <bdo id='o5YJh'></bdo><ul id='o5YJh'></ul>

      <small id='o5YJh'></small><noframes id='o5YJh'>

    1. 基于数据帧中数字连续出现的条件概率计算

      时间:2024-08-21

        1. <i id='iEfEu'><tr id='iEfEu'><dt id='iEfEu'><q id='iEfEu'><span id='iEfEu'><b id='iEfEu'><form id='iEfEu'><ins id='iEfEu'></ins><ul id='iEfEu'></ul><sub id='iEfEu'></sub></form><legend id='iEfEu'></legend><bdo id='iEfEu'><pre id='iEfEu'><center id='iEfEu'></center></pre></bdo></b><th id='iEfEu'></th></span></q></dt></tr></i><div id='iEfEu'><tfoot id='iEfEu'></tfoot><dl id='iEfEu'><fieldset id='iEfEu'></fieldset></dl></div>
          <tfoot id='iEfEu'></tfoot>

          <legend id='iEfEu'><style id='iEfEu'><dir id='iEfEu'><q id='iEfEu'></q></dir></style></legend>
            <bdo id='iEfEu'></bdo><ul id='iEfEu'></ul>
              <tbody id='iEfEu'></tbody>

              • <small id='iEfEu'></small><noframes id='iEfEu'>

                本文介绍了基于数据帧中数字连续出现的条件概率计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我有一个数据框,它有一个多索引(股票代码和日期),其中有一列对每只股票进行计数,在每一行中,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

                推荐答案

                我们可以groupbyshiftCounter列,然后使用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 pandas 基于多个列值进行分组 下一篇:TypeError:按多列分组时,无法将bool转换为numpy.ndarray&quot;

                相关文章

                <legend id='pLxPC'><style id='pLxPC'><dir id='pLxPC'><q id='pLxPC'></q></dir></style></legend>

                  1. <tfoot id='pLxPC'></tfoot>
                      <bdo id='pLxPC'></bdo><ul id='pLxPC'></ul>
                  2. <small id='pLxPC'></small><noframes id='pLxPC'>

                    <i id='pLxPC'><tr id='pLxPC'><dt id='pLxPC'><q id='pLxPC'><span id='pLxPC'><b id='pLxPC'><form id='pLxPC'><ins id='pLxPC'></ins><ul id='pLxPC'></ul><sub id='pLxPC'></sub></form><legend id='pLxPC'></legend><bdo id='pLxPC'><pre id='pLxPC'><center id='pLxPC'></center></pre></bdo></b><th id='pLxPC'></th></span></q></dt></tr></i><div id='pLxPC'><tfoot id='pLxPC'></tfoot><dl id='pLxPC'><fieldset id='pLxPC'></fieldset></dl></div>