【问题标题】:first and last value of a Day in Pandas (Python)Pandas 中一天的第一个和最后一个值(Python)
【发布时间】:2017-11-28 00:19:11
【问题描述】:

我有一段很长的数据(3 个月),每 15 秒记录一次。

第一个时间戳如下所示:2017-04-01 00:00:00 最后一个时间戳是这样的:2017-04-01 23:59:45

现在我正在寻找一种方法来获取“Temp”列的第一个和最后一个值。 最好在两个新列中包含这两个值。

【问题讨论】:

    标签: python date pandas timestamp


    【解决方案1】:

    我认为您需要 resample by daysagg firstlast 聚合:

    N = 100000
    rng = pd.date_range('2011-01-01', periods=N, freq='15S')
    df = pd.DataFrame({'Timestamp': rng, 'Temp': range(N)})  
    #print (df)
    
    df = df.resample('D', on='Timestamp')['Temp'].agg(['first','last'])
    print (df)
                first   last
    Timestamp               
    2011-01-01      0   5759
    2011-01-02   5760  11519
    2011-01-03  11520  17279
    2011-01-04  17280  23039
    2011-01-05  23040  28799
    2011-01-06  28800  34559
    2011-01-07  34560  40319
    2011-01-08  40320  46079
    2011-01-09  46080  51839
    2011-01-10  51840  57599
    2011-01-11  57600  63359
    2011-01-12  63360  69119
    2011-01-13  69120  74879
    2011-01-14  74880  80639
    2011-01-15  80640  86399
    2011-01-16  86400  92159
    2011-01-17  92160  97919
    2011-01-18  97920  99999
    

    如果dfDatetimeIndex省略参数on

    N = 100000
    rng = pd.date_range('2011-01-01', periods=N, freq='15S')
    df = pd.DataFrame({'Temp': range(N)}, index=rng)  
    #print (df)
    
    df = df.resample('D')['Temp'].agg(['first','last'])
    print (df)
                first   last
    2011-01-01      0   5759
    2011-01-02   5760  11519
    2011-01-03  11520  17279
    2011-01-04  17280  23039
    2011-01-05  23040  28799
    2011-01-06  28800  34559
    2011-01-07  34560  40319
    2011-01-08  40320  46079
    2011-01-09  46080  51839
    2011-01-10  51840  57599
    2011-01-11  57600  63359
    2011-01-12  63360  69119
    2011-01-13  69120  74879
    2011-01-14  74880  80639
    2011-01-15  80640  86399
    2011-01-16  86400  92159
    2011-01-17  92160  97919
    2011-01-18  97920  99999
    

    【讨论】:

    • 如果我的回答对您有帮助,请不要忘记accept - 单击答案旁边的复选标记 () 将其从灰色切换为已填充。谢谢。跨度>
    猜你喜欢
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多