<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. 基于数据帧中数字连续出现的条件概率计算

      Computing the conditional probability based on consecutive occurences of numbers in dataframe(基于数据帧中数字连续出现的条件概率计算)

        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
                

                这篇关于基于数据帧中数字连续出现的条件概率计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)
                Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                <legend id='pLxPC'><style id='pLxPC'><dir id='pLxPC'><q id='pLxPC'></q></dir></style></legend>
                  <tbody id='pLxPC'></tbody>

                    • <tfoot id='pLxPC'></tfoot>
                          <bdo id='pLxPC'></bdo><ul id='pLxPC'></ul>
                        • <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>