• <tfoot id='jL0Jq'></tfoot>
    • <bdo id='jL0Jq'></bdo><ul id='jL0Jq'></ul>
    <legend id='jL0Jq'><style id='jL0Jq'><dir id='jL0Jq'><q id='jL0Jq'></q></dir></style></legend>

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

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

        对在多个PANDA列上使用GROUPBY后出现的值进行计数

        时间:2024-08-21

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

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

                • <legend id='T6DUu'><style id='T6DUu'><dir id='T6DUu'><q id='T6DUu'></q></dir></style></legend>

                • 本文介绍了对在多个PANDA列上使用GROUPBY后出现的值进行计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我的输入数据帧如下:

                  使用以下代码行生成

                   l = [["a", 12, 12], ["a", 12, 33.], ["b", 12.3, 12.3], ["a", 13, 1]]
                  df = pd.DataFrame(l, columns=["a", "b", "c"])
                  

                  我目前可以按如下方式累计统计频率

                  使用

                  df['freq'] = df.groupby(by=["a","b"]).cumcount()+1
                  

                  它考虑了列a和列b中的公共值,并对它们进行计数。然而,我只想在列b的值不同而列a的值相同的情况下增加频率计数。下图显示了所需输出的一种形式:

                  如何以优化的方式在 pandas 身上实现这一点?

                  推荐答案

                  可以使用双精度.groupby。例如:

                  df["freq"] = df.groupby("a")["b"].apply(lambda x: x.groupby(x).ngroup() + 1)
                  print(df)
                  

                  打印:

                     a     b     c  freq
                  0  a  12.0  12.0     1
                  1  a  12.0  33.0     1
                  2  b  12.3  12.3     1
                  3  a  13.0   1.0     2
                  

                  这篇关于对在多个PANDA列上使用GROUPBY后出现的值进行计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Dropna设置为True的 pandas Groupby生成错误输出 下一篇:Python Dataframe Groupby Mean和Std

                  相关文章

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

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

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