python - CSV时间序列子集选择和数据聚合

标签 python matlab csv

这是表格的一部分:

21 , F    ,  -59981 , 2015-05-08 00:00:04 , F1
21 , P    ,       1 , 2015-05-08 00:00:04 , Shed
21 , P    ,       7 , 2015-05-08 00:00:05 , PowerS
21 , P    ,       0 , 2015-05-08 00:00:05 , PowerG
21 , P    ,     205 , 2015-05-08 00:00:05 , Panel1
21 , P    ,     129 , 2015-05-08 00:00:05 , Panel2
21 , P    ,     145 , 2015-05-08 00:00:05 , Panel3
21 , V    , -120789 , 2015-05-08 00:00:05 , VrmsA
21 , V    , -120746 , 2015-05-08 00:00:05 , VrmsB
21 , I    ,   -1750 , 2015-05-08 00:00:05 , I11
21 , I    ,    -319 , 2015-05-08 00:00:05 , I12
21 , I    ,    -988 , 2015-05-08 00:00:05 , I21
21 , I    ,    -512 , 2015-05-08 00:00:05 , I22
21 , I    ,   -1790 , 2015-05-08 00:00:05 , I31
21 , I    ,    -131 , 2015-05-08 00:00:05 , I32
21 , F    ,  -59994 , 2015-05-08 00:00:05 , F2
21 , F    ,  -59982 , 2015-05-08 00:00:05 , F1
21 , P    ,       2 , 2015-05-08 00:00:05 , Shed
21 , P    ,       6 , 2015-05-08 00:00:06 , PowerS
21 , P    ,       0 , 2015-05-08 00:00:06 , PowerG
21 , P    ,     205 , 2015-05-08 00:00:06 , Panel1
21 , P    ,     129 , 2015-05-08 00:00:06 , Panel2
21 , P    ,     146 , 2015-05-08 00:00:06 , Panel3
21 , V    , -120750 , 2015-05-08 00:00:06 , VrmsA
21 , V    , -120708 , 2015-05-08 00:00:06 , VrmsB
21 , I    ,   -1748 , 2015-05-08 00:00:06 , I11
21 , I    ,    -318 , 2015-05-08 00:00:06 , I12
21 , I    ,    -986 , 2015-05-08 00:00:06 , I21
21 , I    ,    -512 , 2015-05-08 00:00:06 , I22
21 , I    ,   -1794 , 2015-05-08 00:00:06 , I31
21 , I    ,    -132 , 2015-05-08 00:00:06 , I32
21 , F    ,  -60018 , 2015-05-08 00:00:06 , F2
21 , F    ,  -59982 , 2015-05-08 00:00:06 , F1

我想通过 Matlab 或 Python 操作 CSV 中的表格,以便每隔一个 Panel1 Panel2 Panel3 进行聚合

21 , P    ,     205 , 2015-05-08 00:00:05 , Panel1
21 , P    ,     129 , 2015-05-08 00:00:05 , Panel2
21 , P    ,     145 , 2015-05-08 00:00:05 , Panel3

将给出 T1=205+129+145 并可形成T1、T2、T3表。聚合数据可以添加到另一个 CSV 文件中。 还有一种简单的方法可以在 matlab 或 python 中单独绘制所有 Panel1 或 Panel 2 吗?

最佳答案

import csv


with open('thef.csv', 'rb') as f:
    data=list(csv.reader(f))

a= [int(i[2].strip()) for i in data if "Panel" in i[4]]

b=[sum(a[i:i+3]) for i in range(0,len(a),3)]

print a

print b
"""
Output:
[205, 129, 145, 205, 129, 146]
[479, 480]"""

myvars=[]
#my vars to generate variables T1,T2
for i in range(1,len(b)+1):
    myvars.append('T'+str(i))
print myvars

myrows= map(list,zip(myvars,b))

print myrows

with open('test.csv', 'wb') as fp:
    myf = csv.writer(fp, delimiter=',')
    myf.writerows(myrows

)

关于python - CSV时间序列子集选择和数据聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155383/

相关文章:

matlab - 在低分辨率灰度图像中查找重叠圆的中心

matlab - 如何将结构中的变量加载到 Matlab 工作区中?

c# - .NET 写入分隔文本文件

python - GAE Python - CSV Writer 给出 ascii 编解码器错误

python - 如何存储CNN的展平结果?

python - 以任意方向在图像上随机书写文本(例如 : horizontal, 垂直,对角线(+45,-45))

Python多变量赋值困惑

python - 将 Pandas 数据框中的行和上一行与数百万行进行比较的最快方法

c++ - 二维数据点集的加权线性最小二乘法

python - 如何忽略csv文件中的空白行