按技术和电厂名称汇总 CSV 电厂数据

Summing up CSV power plant data by technology and plant name

我有一个关于 Form 860 data 美国发电厂的问题。

它是按块组织的,而不是按工厂组织的。要有用,容量数字必须加起来。

如何获得每个工厂的每种技术的总容量(按名称或 ID)?

Plant ID,Plant Name,Nameplate Capacity (MW),Technology,...
3,Barry,153.1,Natural Gas Steam Turbine,..
3,Barry,153.1,Natural Gas Steam Turbine,..
3,Barry,403.7,Conventional Steam Coal,..
3,Barry,788.8,Conventional Steam Coal,..
3,Barry,195.2,Natural Gas Fired Combined Cycle,..
3,Barry,195.2,Natural Gas Fired Combined Cycle,..
10,Greene County,299.2,Natural Gas Steam Turbine,..
10,Greene County,269.2,Natural Gas Steam Turbine,..
10,Greene County,80,Natural Gas Fired Combustion Turbine,..
10,Greene County,80,Natural Gas Fired Combustion Turbine,..
10,Greene County,80,Natural Gas Fired Combustion Turbine,..

用计算器SUMIF或Excel只求和很容易,但如何按技术筛选? 所以我最好通过纯 CSV 处理来做到这一点。

例如,这可能吗? Python?感谢任何好的答案!

有了Python,你可以使用第3方Pandas库:

将您的 Excel 文件读入数据框

import pandas as pd

df = pd.read_excel('file_in.xlsx')

用总和计算GroupBy

Grouper 键可以是标量或列表。例如,这些都是有效的:

res = df.groupby('Technology')['Capacity'].sum().reset_index()
res = df.groupby(['ID', 'Name'])['Capacity'].sum().reset_index()

我们使用 reset_index 到 return 数据框。

导出回 Excel

res.to_excel('file_out.xlsx')

Pandas 图书馆将是一个有用的图书馆。用于处理数据帧。

正在导入 Pandas 库

import pandas as pd

正在读取表格 csv 文件

df = pd.read_csv("form.csv")

求和

df.groupby('PlantName')['NameplateCapacity'].sum()