python - Matplotlib 从 CSV 中读取时间值
问题描述
我是 python 编码的新手,但是已经玩了一段时间了
我正在尝试使用 matplotlib 从 CSV 文件中绘制日期。我正在阅读这样的 CSV 文件:(这是我每分钟阅读的一个小样本)
03:59:01,1,0.000,2,0.000,3,0.000,4,0.622,
04:00:01,1,12.000,2,0.000,3,0.000,4,0.627,
我只查看第 0 列(时间)和第 3 列(值)我知道时间不是 INT,所以它不会导入它 IE:我明白了
ValueError: invalid literal for int() with base 10: '03:59:55'
当它读入时如何转换它以便我可以?
import matplotlib.pyplot as plt
import numpy as np
import csv
x = []
y = []
# read in file columns 0 and 2
with open('bob1.csv','r') as csvfile:
plots = csv.reader(csvfile, delimiter=',')
next(plots)
for row in plots:
x.append(int(row[0]))
y.append(float(row[2]))
plt.plot(x,y, label='Loaded from file!')
plt.savefig('test7.png',dpi=720)
我已经进行了一些基本的谷歌搜索,但没有任何内容可以帮助我完成我正在做的事情。我知道有很多为什么要这样做。因此,如果有人有时间并愿意帮助我更好地获取此代码,我将不胜感激。
谢谢
解决方案
您可以尝试以下代码:
import matplotlib.pyplot as plt
import pandas as pd
csv_data = pd.read_csv('bob1.csv', index_col= 'Time')
data = pd.DataFrame(csv_data)
plt.xlabel('Time')
wathever = plt.plot(data['Unnamed: 1'], 'k', label='')
plt.title('')
plt.legend(title='')
plt.show(block=True)
添加带有一些文本的行,这将是您的索引。然后,index_col= 'Time'
Time 是我在时间序列中添加为标签的文本。如果您不在其余列中添加名称,熊猫将自动考虑Unnamed: number
. 您还可以为列添加名称,然后'Unnamed:1'
添加列的名称而不是 。
例如,如果您创建以下 df:
这是:
Time,A,B,C,D,E,F,G,H
03:59:01,1,0,2,0,3,0,4,0.62
04:00:01,1,12,2,0,3,0,4,0.63
然后,'Unnamed: 1'
您需要键入'A'
推荐阅读
- sql-server - SQL 触发器 - 插入后,更新错误和正确的值
- powerbi - 通过 SQL 在 powerBI 中显示表情符号
- c++ - 如何转发元组的类型以专门化其他模板?
- c# - 时间:2019-01-10 标签:c#convert a string into JSON like TreeView
- c# - 退出应用程序时关闭使用的 WinSCP 会话(在使用中)
- dafny - 如何在 Dafny 中将一个值转换为两个字节?
- python - 具有对角权重矩阵的自定义层
- python - 具有嵌套列表、if 语句和范围步骤的列表理解
- regex - 如何在正则表达式语句中找到 [**],以便我可以将 multi_line_start_pattern 用于 aws cloudwatch 代理
- ruby-on-rails - 在 Swagger 文档中定义对象数组