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

    <legend id='Y6d2H'><style id='Y6d2H'><dir id='Y6d2H'><q id='Y6d2H'></q></dir></style></legend>
    1. <i id='Y6d2H'><tr id='Y6d2H'><dt id='Y6d2H'><q id='Y6d2H'><span id='Y6d2H'><b id='Y6d2H'><form id='Y6d2H'><ins id='Y6d2H'></ins><ul id='Y6d2H'></ul><sub id='Y6d2H'></sub></form><legend id='Y6d2H'></legend><bdo id='Y6d2H'><pre id='Y6d2H'><center id='Y6d2H'></center></pre></bdo></b><th id='Y6d2H'></th></span></q></dt></tr></i><div id='Y6d2H'><tfoot id='Y6d2H'></tfoot><dl id='Y6d2H'><fieldset id='Y6d2H'></fieldset></dl></div>
    2. 如何在 pandas 数据框中对最大和最小时间戳进行分组

      时间:2023-10-19

        <tbody id='MeA3C'></tbody>
        • <small id='MeA3C'></small><noframes id='MeA3C'>

        • <tfoot id='MeA3C'></tfoot>
            <bdo id='MeA3C'></bdo><ul id='MeA3C'></ul>

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

                本文介绍了如何在 pandas 数据框中对最大和最小时间戳进行分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我想对数据集进行分组并返回最大和最小时间戳.这是我的数据

                I want to group a dataset and return the maximum and minimum timestamp. Here's my data

                id  timestamp
                1   2017-09-17 10:09:01
                2   2017-10-02 01:13:15
                1   2017-09-17 10:53:07
                1   2017-09-17 10:52:18
                2   2017-09-12 21:59:40
                

                这是我想要的输出

                id    max                   min
                1     2017-09-17 10:53:07   2017-09-17 10:09:01
                2     2017-10-02 01:13:15   2017-09-12 21:59:40
                

                这就是我所做的,代码似乎效率不高,我希望在 pandas 上有更好的方法来做到这一点

                Here's what I did, the code seems not efficient, I hope theres better way to do this on pandas

                data1 = df.sort_values('timestamp').drop_duplicates(['customer_id'], keep='last')
                data2 = df.sort_values('timestamp').drop_duplicates(['customer_id'], keep='first')
                data1['max'] = data1['timestamp']
                data2['min'] = data2['timestamp']
                data = data1.merge(data2, on = 'customer_id', how='left')
                data = data.drop(['timestamp_x','timestamp_y'], axis=1)
                

                熊猫似乎有这种枢轴

                推荐答案

                我觉得需要agg:

                df = df.groupby('id')['timestamp'].agg(['min','max']).reset_index()
                print (df)
                   id                 min                 max
                0   1 2017-09-17 10:09:01 2017-09-17 10:53:07
                1   2 2017-09-12 21:59:40 2017-10-02 01:13:15
                

                或者稍微修改一下你的解决方案(应该会更快):

                Or a bit modify your solution (should be faster):

                data = df.sort_values('timestamp')
                data1 = data.drop_duplicates(['id'], keep='last').set_index('id')
                data2 = data.drop_duplicates(['id'], keep='first').set_index('id')
                
                df = pd.concat([data1['timestamp'], data2['timestamp']],keys=('max','min'), axis=1)
                
                print (df)
                                   max                 min
                id                                        
                1  2017-09-17 10:53:07 2017-09-17 10:09:01
                2  2017-10-02 01:13:15 2017-09-12 21:59:40
                

                这篇关于如何在 pandas 数据框中对最大和最小时间戳进行分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:Python:一次包含重复值的多个列的 Pandas 数据透视表 下一篇:按时间值进行透视排序 - Pandas

                相关文章

                  <bdo id='vOPup'></bdo><ul id='vOPup'></ul>

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

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

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