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

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

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

      3. pandas -按两种功能分组

        时间:2024-08-22
          <bdo id='jXAhm'></bdo><ul id='jXAhm'></ul>

        • <tfoot id='jXAhm'></tfoot>
            <tbody id='jXAhm'></tbody>

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

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

                <legend id='jXAhm'><style id='jXAhm'><dir id='jXAhm'><q id='jXAhm'></q></dir></style></legend>
                  本文介绍了 pandas -按两种功能分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我一直在试着从大 pandas 的Groupby物体上得到一个累加。我需要将累加移位1,这是通过Shift()实现的。但是,在单个GROUPBY对象上同时执行这两个函数会产生一些不需要的结果:

                  df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2],
                                     'B': [2, 3, 5, 2, 3, 5]})
                  
                  df.groupby('A').cumsum().shift()
                  

                  这提供了:

                        B
                  0   NaN
                  1   2.0
                  2   5.0
                  3  10.0
                  4   2.0
                  5   5.0
                  

                  即,组1上的Cumsum()的最后一个值被移位到组2的第一个值。我想要的是这些组保持分离,并获得:

                        B
                  0   NaN
                  1   2.0
                  2   5.0
                  3   NaN
                  4   2.0
                  5   5.0
                  

                  但我不确定如何让这两个函数结合使用GROUPBY对象。在其他地方找不到这个问题。一直在玩弄阿格,但似乎解决不了问题。如有任何帮助,我们将不胜感激。

                  推荐答案

                  使用lambda functionWITHGroupBy.apply,还需要在groupby之后定义列表中的列进行处理:

                  df['B'] = df.groupby('A')['B'].apply(lambda x: x.cumsum().shift())
                  print (df)
                     A    B
                  0  1  NaN
                  1  1  2.0
                  2  1  5.0
                  3  2  NaN
                  4  2  2.0
                  5  2  5.0
                  

                  这篇关于 pandas -按两种功能分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Python Pandas滚动聚合一列列表 下一篇:pandas -按连续日期时间段分组

                  相关文章

                    <tfoot id='u0QJI'></tfoot>

                        <bdo id='u0QJI'></bdo><ul id='u0QJI'></ul>
                    1. <small id='u0QJI'></small><noframes id='u0QJI'>

                    2. <legend id='u0QJI'><style id='u0QJI'><dir id='u0QJI'><q id='u0QJI'></q></dir></style></legend>

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