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

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

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

      1. <tfoot id='Qm44B'></tfoot>

        在 groupby 聚合之后指定列顺序

        时间:2023-10-08

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

          <tbody id='obi06'></tbody>

          1. <legend id='obi06'><style id='obi06'><dir id='obi06'><q id='obi06'></q></dir></style></legend>

            • <i id='obi06'><tr id='obi06'><dt id='obi06'><q id='obi06'><span id='obi06'><b id='obi06'><form id='obi06'><ins id='obi06'></ins><ul id='obi06'></ul><sub id='obi06'></sub></form><legend id='obi06'></legend><bdo id='obi06'><pre id='obi06'><center id='obi06'></center></pre></bdo></b><th id='obi06'></th></span></q></dt></tr></i><div id='obi06'><tfoot id='obi06'></tfoot><dl id='obi06'><fieldset id='obi06'></fieldset></dl></div>
                  <bdo id='obi06'></bdo><ul id='obi06'></ul>
                  <tfoot id='obi06'></tfoot>
                • 本文介绍了在 groupby 聚合之后指定列顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  每次运行代码时,我的年龄、身高和体重列的顺序都会发生变化.我需要保持 agg 列的顺序不变,因为我最终会根据列位置引用此输出文件.如何确保每次都以相同的顺序输出年龄、身高和体重?

                  The ordering of my age, height and weight columns is changing with each run of the code. I need to keep the order of my agg columns static because I ultimately refer to this output file according to the column locations. What can I do to make sure age, height and weight are output in the same order every time?

                  d = pd.read_csv(input_file, na_values=[''])
                  df = pd.DataFrame(d)
                  df.index_col = ['name', 'address']
                  
                  df_out = df.groupby(df.index_col).agg({'age':np.mean, 'height':np.sum, 'weight':np.sum})
                  df_out.to_csv(output_file, sep=',')
                  

                  推荐答案

                  我觉得你可以使用subset:

                  I think you can use subset:

                  df_out = df.groupby(df.index_col)
                             .agg({'age':np.mean, 'height':np.sum, 'weight':np.sum})[['age','height','weight']]
                  

                  你也可以使用 pandas 函数:

                  Also you can use pandas functions:

                  df_out = df.groupby(df.index_col)
                             .agg({'age':'mean', 'height':sum, 'weight':sum})[['age','height','weight']]
                  

                  示例:

                  df = pd.DataFrame({'name':['q','q','a','a'],
                                     'address':['a','a','s','s'],
                                     'age':[7,8,9,10],
                                     'height':[1,3,5,7],
                                     'weight':[5,3,6,8]})
                  
                  print (df)
                    address  age  height name  weight
                  0       a    7       1    q       5
                  1       a    8       3    q       3
                  2       s    9       5    a       6
                  3       s   10       7    a       8
                  df.index_col = ['name', 'address']
                  df_out = df.groupby(df.index_col)
                             .agg({'age':'mean', 'height':sum, 'weight':sum})[['age','height','weight']]
                  
                  print (df_out)
                                age  height  weight
                  name address                     
                  a    s        9.5      12      14
                  q    a        7.5       4       8
                  

                  根据建议编辑 - 添加 reset_index,如果也需要索引值,这里 as_index=False 不起作用:

                  EDIT by suggestion - add reset_index, here as_index=False does not work if need index values too:

                  df_out = df.groupby(df.index_col)
                             .agg({'age':'mean', 'height':sum, 'weight':sum})[['age','height','weight']]
                             .reset_index()
                  
                  print (df_out)
                    name address  age  height  weight
                  0    a       s  9.5      12      14
                  1    q       a  7.5       4       8
                  

                  这篇关于在 groupby 聚合之后指定列顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:早于 2.6 的 Python 版本中的字符串格式 下一篇:如何在python中显示区域设置敏感时间格式而无需

                  相关文章

                  最新文章

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

                    <tfoot id='DmyQd'></tfoot>
                    • <bdo id='DmyQd'></bdo><ul id='DmyQd'></ul>
                  2. <small id='DmyQd'></small><noframes id='DmyQd'>