我有一个我想读的csv文件 . excel / csv工作表中的第一行是列 Headers “Jan | Feb | Mar ...”等 . 然后在每个列 Headers 下面是浮点数据 . 我有以下代码:
filename ='Data.csv'
with open(filename) as f:
csvreader = csv.reader(f)
header_row = next(csvreader)
Jan, Feb = [], [] .... #(and so on)
Mar = []
Apr = []
May = []
Jun = []
Jul = []
Aug = []
Sep = []
Oct = []
Nov = []
Dec = []
for row in csvreader:
Jan.append(float(row[1]))
Feb.append(float(row[2]))
Mar.append(float(row[3]))
Apr.append(float(row[4]))
May.append(float(row[5]))
Jun.append(float(row[6]))
Jul.append(float(row[7]))
Aug.append(float(row[8]))
Sep.append(float(row[9]))
Oct.append(float(row[10]))
Nov.append(float(row[11]))
Dec.append(float(row[12]))
如何压缩此代码,以便我可以轻松绘制带有x轴上的月份和y轴上的数据的条形图?
2 回答
对我来说,最简单的方法是使用pandas库,因为它直接从数据框提供绘图能力 .
编辑:如果你有excel中的数据,则不需要为csv文件提供sep . 要读取excel文件,它就像下面这样简单:
http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_excel.html
一些例子:
大白菜的熊猫文件:https://pandas.pydata.org/pandas-docs/stable/visualization.html#visualization-barplot
假数据/设置:
csv.reader对象返回行
您可以使用zip()将数据转置为列
您可以使用zip将列与其 Headers 相关联,并在图中添加图例
如果您只想将数据放入容器并将列与其 Headers 相关联,请将其放在dict中: