<p>下面我使用的解决方案是itertuples方法。请注意使用numpy.sum函数对我不起作用。我改为使用pandas重采样关键字“how”并将其设置为sum。在</p>
<p>我还重命名了文件中的列,使导入更容易。在</p>
<p>我不受时间/资源限制,所以我使用itertuples方法,因为它很容易实现。在</p>
<p><strong>i启动代码</strong></p>
<pre><code>import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#load data
df = pd.read_excel(r'C:\input_file.xlsx', sheetname='sheet1')
#convert columns
df['duration'] = pd.to_timedelta(df['Duration (Hours)'], unit='H')
df['end_date'] = df['start_date'] + df['duration']
df['power (kW/min)'] = df['Usage(kWh)']/(df['Duration (Hours)']*60)
df = df.drop(['Duration (Hours)'], axis=1)
#create result df with timestamps
result = pd.Series(0, index=pd.date_range(df['start_date'].min(), df['end_date'].max(), freq='T'))
#iterate through to calculate total energy at each minute
power_idx = df.columns.get_loc('power (kW/min)')+1
for row in df.itertuples():
result.loc[row.start_date:row.end_date] += row[power_idx]
# The sum of the usage over 15 minute windows is computed using the `resample/sum` method
usage = result.resample('15T', how='sum')
#plot
plt.plot(usage)
plt.show()
#write to file
usage.to_csv(r'C:\output_folder\output_file.csv')
</code></pre>
<p><a href="https://i.stack.imgur.com/PXXaL.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/PXXaL.png" alt="Solution using itertuples method"/></a></p>