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

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

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

        <tfoot id='FwGyT'></tfoot>
      1. 如何根据python中的通用ID值将2列的垂直pandas表转换为水平表

        时间:2023-10-19
          <bdo id='zoWdP'></bdo><ul id='zoWdP'></ul>

            <legend id='zoWdP'><style id='zoWdP'><dir id='zoWdP'><q id='zoWdP'></q></dir></style></legend>
                  <tfoot id='zoWdP'></tfoot>
                1. <i id='zoWdP'><tr id='zoWdP'><dt id='zoWdP'><q id='zoWdP'><span id='zoWdP'><b id='zoWdP'><form id='zoWdP'><ins id='zoWdP'></ins><ul id='zoWdP'></ul><sub id='zoWdP'></sub></form><legend id='zoWdP'></legend><bdo id='zoWdP'><pre id='zoWdP'><center id='zoWdP'></center></pre></bdo></b><th id='zoWdP'></th></span></q></dt></tr></i><div id='zoWdP'><tfoot id='zoWdP'></tfoot><dl id='zoWdP'><fieldset id='zoWdP'></fieldset></dl></div>
                    <tbody id='zoWdP'></tbody>
                2. <small id='zoWdP'></small><noframes id='zoWdP'>

                3. 本文介绍了如何根据python中的通用ID值将2列的垂直pandas表转换为水平表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  df1 = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two', 'two'],
                                      'bar': ['A', 'B', 'C', 'A', 'B', 'C']})
                  

                  <头>
                  酒吧
                  0一个一个
                  1一个B
                  2一个C
                  3两个一个
                  4两个B
                  5两个C

                  我想把它转换成

                  <头>
                  val1val2val3
                  一个一个BC
                  两个一个BC

                  我试过的代码是:

                  pd.pivot_table(df1,index='foo',aggfunc=['first'])
                  

                  但上面的代码只返回第一个值

                  But the above code is returning only the first value

                  推荐答案

                  我们可以用 groupby cumcount 并将其用作枢轴列,然后 add_prefix 到数值和 reset_index 返回 'foo' 值到列:

                  We can enumerate groups with groupby cumcount and use those as the pivot columns then add_prefix to the numerical values and reset_index to return the 'foo' values to the columns:

                  new_df = (
                      df1.pivot_table(index='foo',
                                      columns=df1.groupby('foo').cumcount() + 1,
                                      values='bar', 
                                      aggfunc='first')
                          .add_prefix('val')
                          .reset_index()
                  )
                  

                     foo val1 val2 val3
                  0  one    A    B    C
                  1  two    A    B    C
                  


                  看看 df1.groupby('foo').cumcount() + 1 如何制作列:

                     foo  columns
                  0  one        1  # First instance of "one"
                  1  one        2  # Second instance of "one"
                  2  one        3  # Third instance of "one"
                  3  two        1
                  4  two        2
                  5  two        3
                  

                  生成上述DataFrame的代码:

                  Code to generate the above DataFrame:

                  demo_df = pd.DataFrame({
                      'foo': df1['foo'],
                      'columns': df1.groupby('foo').cumcount() + 1
                  })
                  

                  这篇关于如何根据python中的通用ID值将2列的垂直pandas表转换为水平表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Panda 数据透视表边距仅在行上 下一篇:get_dummies 和一起计数

                  相关文章

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

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

                        <bdo id='wAsEb'></bdo><ul id='wAsEb'></ul>
                    1. <legend id='wAsEb'><style id='wAsEb'><dir id='wAsEb'><q id='wAsEb'></q></dir></style></legend>