我正在尝试使用pandas dataframe / series来存储测量值 . 这些用作热力学模拟的输入 . 因此,当重新采样热量(/能量)和温度值时,应保持不变 .

import pandas as pd
import numpy as np

start_date = '2015-01-01 '
my_timing = '60T'
my_ts_index = pd.date_range(start_date, periods=6, freq=my_timing, name='Time')
# read from a csv or sql data base
Heat = [120,200,210,0 ,50, 180]
Temperature = [23.2, 19.1, 15.3, 25.2, 20.1, 0.0]
data=np.array([(Heat),
               (Temperature)])
columnNames=['Heat','Temperature']
my_ts=pd.DataFrame(np.transpose(data),columns=columnNames,index=my_ts_index)
print(my_ts)
# GUI checks if len(my_ts)%new_timestep==0
# increase frequency
tmp=my_ts.resample('25T').mean()
tmp['Heat']=tmp['Heat'].fillna(0)
tmp['Temperature']=tmp['Temperature'].ffill()
print(tmp)               
# reduce frequency
tmp=tmp.resample('60T').agg({'Heat':lambda x:np.sum(x),'Temperature':np.average})
print(tmp)
tmp=my_ts.resample('75T').agg({'Heat':lambda x:np.sum(x),'Temperature':np.average})
print(tmp)

输出:

Heat  Temperature
Time                                   
2015-01-01 00:00:00  120.0         23.2
2015-01-01 01:00:00  200.0         19.1
2015-01-01 02:00:00  210.0         15.3
2015-01-01 03:00:00    0.0         25.2
2015-01-01 04:00:00   50.0         20.1
2015-01-01 05:00:00  180.0          0.0

                     Heat  Temperature
Time                                   
2015-01-01 00:00:00  120.0         23.2
2015-01-01 00:25:00    0.0         23.2
2015-01-01 00:50:00  200.0         19.1
2015-01-01 01:15:00    0.0         19.1
2015-01-01 01:40:00  210.0         15.3
2015-01-01 02:05:00    0.0         15.3
2015-01-01 02:30:00    0.0         15.3
2015-01-01 02:55:00    0.0         25.2
2015-01-01 03:20:00    0.0         25.2
2015-01-01 03:45:00   50.0         20.1
2015-01-01 04:10:00    0.0         20.1
2015-01-01 04:35:00    0.0         20.1
2015-01-01 05:00:00  180.0          0.0     

                      Heat  Temperature
Time                                   
2015-01-01 00:00:00  320.0    21.833333
2015-01-01 01:00:00  210.0    17.200000
2015-01-01 02:00:00    0.0    18.600000
2015-01-01 03:00:00   50.0    22.650000
2015-01-01 04:00:00    0.0    20.100000
2015-01-01 05:00:00  180.0     0.000000

                      Heat  Temperature
Time                                   
2015-01-01 00:00:00  320.0        21.15
2015-01-01 01:15:00  210.0        15.30
2015-01-01 02:30:00    0.0        25.20
2015-01-01 03:45:00   50.0        20.10
2015-01-01 05:00:00  180.0         0.00

应该使用哪些操作将数据重新采样到更高频率并返回到原始数据而不会丢失任何内容?
(参见:能量和温度的输出2中的输出1和3保守特性仍然必须保持)
如何设置平均值/平均值/总和从第2个值开始,以便第一个保持不受影响的初始值原因?或者换句话说:如何将平均值分配给下一个小时而不是前一个小时?
(参见:输出4第一个值对)