Python 对于如何构造一个函数来计算另一个列表每天(24行数据)的最小值和最大值,有什么建议吗?

Python 对于如何构造一个函数来计算另一个列表每天(24行数据)的最小值和最大值,有什么建议吗?,python,for-loop,jupyter,Python,For Loop,Jupyter,我正在使用一个csv文件,其中包含一年内特定位置的每小时温度数据。在此基础上,我制作了一个熊猫数据框,包括以下列表:DOY(每天24个)、时间(以分钟为单位;0、60、120等)和温度 这些数据作为我在Python(Jupyter笔记本,运行在iOS上)中的模型的输入数据,该模型在求解一系列生物物理热流方程时预测动物体温。对于这个模型,我有一个函数,它的参数是每天的最低和最高温度。在csv文件中,每天有24行数据,因为它们提供每小时的温度。我需要能够遍历这个csv文件,并在我已经拥有的另一个函数

我正在使用一个csv文件,其中包含一年内特定位置的每小时温度数据。在此基础上,我制作了一个熊猫数据框,包括以下列表:DOY(每天24个)、时间(以分钟为单位;0、60、120等)和温度

这些数据作为我在Python(Jupyter笔记本,运行在iOS上)中的模型的输入数据,该模型在求解一系列生物物理热流方程时预测动物体温。对于这个模型,我有一个函数,它的参数是每天的最低和最高温度。在csv文件中,每天有24行数据,因为它们提供每小时的温度。我需要能够遍历这个csv文件,并在我已经拥有的另一个函数中选择前一天[I-1]、前一天[I]和第二天[I+1]的最低和最高温度值。有人对如何设置这些功能有什么建议吗?我对Python还是比较陌生(<1年的经验),所以非常感谢您的帮助!)

编辑以澄清:

import math
import itertools
%pylab inline 
import matplotlib as plt


import pandas as pd
import numpy as np
%cd "/Users/lauren/Desktop"

Ta_input = pd.DataFrame(pd.read_csv("28Jan_Mesa_Ta.csv"))
Ta_input.columns = ['', 'doy', 'time', 'Ta'] 
Ta_input.to_numpy()

doy =list(Ta_input['doy'])
time=list(Ta_input['time'])
Ta=list(Ta_input['Ta'])

micro_df = pd.DataFrame(list(zip(doy,time, Ta)),
                columns=['doy','time', 'Ta'])
print(micro_df)

##### Below is the readout showing what the df looks like ###

Populating the interactive namespace from numpy and matplotlib
/Users/lauren/Desktop
      doy  time        Ta
0       1     0  4.434094
1       1    60  4.383863
2       1   120  4.115001
3       1   180  3.831146
4       1   240  3.537708
...   ...   ...       ...
8755  365  1140  6.478684
8756  365  1200  5.744720
8757  365  1260  5.212801
8758  365  1320  4.568695
8759  365  1380  4.398663

[8760 rows x 3 columns]
/usr/local/Caskroom/miniconda/base/lib/python3.7/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['time', 'polyint', 'plt', 'insert']
`%matplotlib` prevents importing * from pylab and numpy
  "\n`%matplotlib` prevents importing * from pylab and numpy"


我有这些功能

def anytime_temp(t,max_t_yesterday,min_t_today,max_t_today,min_t_tomorrow):
    #t = time
    #i = today
    #i-1 = yesterday
    #i+1 = tomorrow
    #Tn = daily min
    #Tx = daily max
    if 0.<=t<=5.:
        return max_t_yesterday*Gamma_t(t) + min_t_today*(1-Gamma_t(t))
    elif 5.<t<=14.:
        return max_t_today*Gamma_t(t)+ min_t_today*(1-Gamma_t(t))
    else:
        return max_t_today*Gamma_t(t)+ min_t_tomorrow*(1-Gamma_t(t))


# Rabs = amount of radiation absorbed by an organism    
def Rabs(s,alpha_s,h,lat,J,time,long,d,tau,alt,rg,alpha_l,max_t_yesterday,min_t_today,max_t_today,min_t_tomorrow,eg,Tave,amp,z,D):
    if math.cos(zenith(latitude,julian,time,longitude)) > 0.:
        return s*alpha_s*(Fh(h,lat,J,time,long,d)*(hS(J,lat,time,long,tau,alt))+0.5*Sd(J,lat,time,long,tau,alt)+0.5*Sr(rg,J,lat,time,long,tau,alt)) + 0.5*alpha_l*(Sla(anytime_temp(time,max_t_yesterday,min_t_today,max_t_today,min_t_tomorrow)) + Slg(eg,Tzt(Tave,amp,z,D,time))) 
    else:
        return 0.5*alpha_l*(Sla(anytime_temp(time,max_t_yesterday,min_t_today,max_t_today,min_t_tomorrow)) + Slg(eg,Tzt(Tave,amp,z,D,time))) 
def anytime_temp(t,max_t_昨天,min_t_今天,max_t_今天,min_t_明天):
#t=时间
#i=今天
#i-1=昨天
#i+1=明天
#Tn=每日最小值
#Tx=每日最大值

如果为0,我建议您在答案中添加一些代码,向我们展示您到目前为止所做的尝试,以及为什么它不能按您希望的方式工作。谢谢!我已经添加了更多的信息和一些代码来澄清我的问题。我建议您创建一个包含2到3天的示例数据的文档,以便其他人可以尝试具体解决您的问题。没有这些,很难给您一个具体的答案。一般来说,您似乎只需要使用两个迭代器(一个负责天数(即,在您的情况下是12个数据点的倍数)循环遍历数据,另一个用于迭代每个小时的时间)。对于延迟的响应,非常抱歉。我不太确定如何最好地为我的要求制作一个最小的可复制的示例,但我现在已经尝试了,因为我仍然停留在这个问题上。。我已经包括了df的前几行,以提供更多的上下文。。。如果您有任何帮助/建议/提示,我们将不胜感激!我建议您在答案中添加一些代码,向我们展示您到目前为止所做的尝试,以及为什么它不能按您希望的方式工作。谢谢!我已经添加了更多的信息和一些代码来澄清我的问题。我建议您创建一个包含2到3天的示例数据的文档,以便其他人可以尝试具体解决您的问题。没有这些,很难给您一个具体的答案。一般来说,您似乎只需要使用两个迭代器(一个负责天数(即,在您的情况下是12个数据点的倍数)循环遍历数据,另一个用于迭代每个小时的时间)。对于延迟的响应,非常抱歉。我不太确定如何最好地为我的要求制作一个最小的可复制的示例,但我现在已经尝试了,因为我仍然停留在这个问题上。。我已经包括了df的前几行,以提供更多的上下文。。。如果您有任何帮助/建议/提示,我们将不胜感激!