我想找到cumulative sum of the list
我正在阅读30个类似的csv文件位于文件夹deg\u pvsyst\u运行。文件名为:
"Energy_Base_Year00_-0.6%modqual.csv", "Energy_Base_Year01_-0.3%modqual.csv", ......, "Energy_Base_Year30_-8.4%modqual.csv
““
我正在读取上述每个csv文件中的EïGrid列(跳过第0-9、11和12行,其中包含标题信息)。请建议
a)如果有一种较短/更简单的方法可以在跳过行的同时读取csv,而不是我所做的(skiprows=[0,1,2,3,4,5,6,7,8,9,11,12]
)
b)如果使用itertools
方法或cumsum
函数将是计算称为Cumulative_Annual_Deg
的列表的累积和的更好选择
代码:
import os, csv, re
import pandas as pd
from itertools import accumulate
Year, Degradation, Mean_EP, Annual_Deg, Cumulative_Annual_Deg =[],[],[],[],[]
cwd = os.getcwd()
csv_files = [f for f in os.listdir(cwd + '\\' + 'deg_pvsyst_runs') if f.endswith('.csv')]
for i,j in enumerate(csv_files):
df = pd.read_csv(os.getcwd() + "\\deg_pvsyst_runs\\" + j, skiprows=[0,1,2,3,4,5,6,7,8,9,11,12])
Mean_EP.append(df['E_Grid'].sum()/10**6)
Annual_Deg.append((Mean_EP[i-1] - Mean_EP[i])/Mean_EP[i-1])
Cumulative_Annual_Deg.append(list(accumulate(Annual_Deg[i])))
错误:
Cumulative_Annual_Deg.append(list(accumulate(Annual_Deg[i])))
TypeError: 'numpy.float64' object is not iterable
编辑:
Annual_Deg
是由csv文件之间的增量(%change)计算组成的列表。我想计算Cumulative_Annual_Deg
来计算累积和。你知道吗
所需输出:
Annual_Mean_EP = [9559.88, 9533.31, 9506.67,...,8731.85]
Annual_Deg = [0, 0.00278, 0.00279,...,0.00297]
Cumulative_Annual_Deg' = [0, 0.00278, 0.00557, ..., 0.08661]
或屏幕截图
可以在计算列表之后计算累积和。所以累积线应该被带到for循环之外。 替换下一行
与
您可以在https://docs.python.org/3/library/itertools.html#itertool-functions上找到有关itertools的更多信息
相关问题 更多 >
编程相关推荐