【发布时间】:2016-10-15 19:15:49
【问题描述】:
我正在处理由逗号 (,) 分隔的 Python 中的 CSV 文件。
每一列都是一个采样参数,例如第 0 列是时间,每秒采样一次,第 1 列是海拔高度,每秒采样 4 次,等等。
所以列将如下所示:
Column 0 -> ["Time", 0, " "," "," ",1]
Column 1 -> ["Altitude", 100, 200, 300, 400]
我正在尝试为每个列创建一个列表,以捕获其名称和所有数据。这样我就可以进行计算并将我的数据自动组织到一个新文件中(我正在处理的采样数据有大量的行)
我想对任何文件执行此操作,而不仅仅是一个文件,因此列数可能会有所不同。
通常,如果每个文件都是一致的,我会这样做:
import csv
time =[]
alt = []
dct = {}
with open('test.csv',"r") as csvfile:
csv_f = csv.reader(csvfile)
for row in csv_f:
header.append(row[0])
alt.append(row[1]) #etc for all columns
我是 python 的新手。如果不是更好的方法,这是解决这个问题的好方法吗?
感谢您的宝贵时间
【问题讨论】:
-
使用字典来保存所有可能的列(列表)。采用内部 for 循环,
for i, val in enumerate(row):...i表示您当前的列。尝试插入val,如果遇到关键错误,请在字典中放置一个新列表,然后插入。 -
可能值得您查看
pandas库以进行此类工作。 pandas.pydata.org/pandas-docs/stable/10min.html ; pandas.pydata.org/pandas-docs/version/0.18.1/tutorials.html
标签: python csv variables dynamic