如何解决使用时间戳查找一天中的最大最小值,并将其添加到现有数据帧中
我有一个由时间戳和一些环境值组成的数据框。我想找到当天的最高和最低温度值,并将其与现有数据框一起存储到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文件?
解决方法
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
,
我认为从这一点上最简单的方法是只将date列生成到原始数据帧,然后将val合并到该数据帧。
我还没有测试过,但是应该像下面这样。
df['date']=df.index.date
dfFull=df.merge(val,how='left' left_on='date',right_on='dayofyear')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。