• <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表转换为水平表

        How to convert vertical pandas table of 2 columns to horizontal table based on common ID value in python(如何根据python中的通用ID值将2列的垂直pandas表转换为水平表)
          <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表转换为水平表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

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

                  相关文档推荐

                  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替换为非空值)
                  <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'>

                      <tbody id='wAsEb'></tbody>

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