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

时间:2018-07-31 23:47:25

标签: python excel csv openoffice-calc

我有一个关于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,..

在Calc或Excel中,仅使用SUMIF即可轻松进行汇总,但是如何按技术进行过滤? 因此,我最好要通过纯CSV处理来做到这一点。

例如蟒蛇?谢谢您的答复!

2 个答案:

答案 0 :(得分:0)

使用Python,您可以使用第三方熊猫库:

将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返回一个数据框。

导出回Excel

res.to_excel('file_out.xlsx')

答案 1 :(得分:0)

熊猫库将是一个有用的库。它用于处理数据帧。

导入熊猫图书馆

import pandas as pd

读取表单csv文件

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

找到总和

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