首页 > 解决方案 > 使用时间戳查找一天中的最大最小值并将其添加到现有数据帧

问题描述

我有一个由时间戳和一些环境值组成的数据框。我想找到当天的最高和最低温度值,并将其与现有数据框一起存储到 csv 文件中。

CSV

到目前为止,我能够使用下面的代码并将最大值和最小值带到单独的数据框中。

''''

    dff = pd.read_csv(n1p2.csv")

    df =  pd.DataFrame(dff)

    df['timeStamp'] =  pd.to_datetime(df['timeStamp'])

    df = df.set_index('timeStamp')

    val = df.loc[df.groupby(df.index.dayofyear).idxmax().iloc[:, 2]]
    

''''

数据框 val 每天都有 SItemp 的最大值。但是如何将它添加到原始数据框中并保存 csv 文件?

标签: pythonpandasdataframeindexing

解决方案


import pandas as pd
d = {'id': [1, 2, 3], 'datatime': ['16-12-19 13:23', '16-12-19 17:45', '17-12-19 13:23'], 'temp': [35,41,32]}
df = pd.DataFrame(data=d)
df = df.set_index('id')
df

样品日期:

      datatime     temp
id      
1   16-12-19 13:23  35
2   16-12-19 17:45  41
3   17-12-19 13:23  32

df['NewDate'] = pd.to_datetime(df['datatime'],format='%d-%m-%y %H:%M')
df['Date Only']=df['NewDate'].dt.date
df

仅日期:

      datatime     temp  NewDate    Date Only
id              
1   16-12-19 13:23  35  2019-12-16 13:23:00 2019-12-16
2   16-12-19 17:45  41  2019-12-16 17:45:00 2019-12-16
3   17-12-19 13:23  32  2019-12-17 13:23:00 2019-12-17

求最小值和最大值:

import numpy as np
data = (df.set_index('Date Only').groupby(level=0)['temp']
          .agg([('Minimum',np.min),('Maximum',np.max)]))
data

结果:

         Minimum    Maximum
Date Only       
2019-12-16  35       41
2019-12-17  32       32

推荐阅读