Python 从csv获取日期/时间和数据到matplotlib

Python 从csv获取日期/时间和数据到matplotlib,python,csv,matplotlib,Python,Csv,Matplotlib,我的最终目标是从csv日志文件中获取matplotlib绘制的日期/时间和临时数据,数据格式如下: date/time,temp1,temp2,temp3,temp4,ect 8/25/2017 14:55:49,20.851,20.953,21.025,21.055,ect 8/25/2017 14:56:49,20.799,20.944,20.99,21.029,ect 我试图将我的数据集硬塞进这个示例中作为起点: 由于我仍然熟悉matplotlib,我不确定首选输入是什么,上面的示例使

我的最终目标是从csv日志文件中获取matplotlib绘制的日期/时间和临时数据,数据格式如下:

date/time,temp1,temp2,temp3,temp4,ect
8/25/2017 14:55:49,20.851,20.953,21.025,21.055,ect
8/25/2017 14:56:49,20.799,20.944,20.99,21.029,ect
我试图将我的数据集硬塞进这个示例中作为起点:

由于我仍然熟悉matplotlib,我不确定首选输入是什么,上面的示例使用数组,因此,如果这是比我的问题更好的选择,那么什么是将这些数据放入正确格式数组的有效方法?以下是我的代码,我读取了一行数据,了解了如何解析日期/时间并将其放入datetime容器:

import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.cbook as cbook

f = open(r'Sample Data.csv')

#Burn off top crap of logfile
for x in range(38):
    f.readline()

#Headers
pantsHeaders = f.readline()
#Start of data
pants1 = f.readline().replace('\x00','').strip('\n').split(',')


pantsDate = datetime.date(int(pants1[0].split(' ')[0].split('/')[2]),int(pants1[0].split(' ')[0].split('/')[0]),int(pants1[0].split(' ')[0].split('/')[1]))
pantsTime = datetime.time(int(pants1[0].split(' ')[1].split(':')[0]),int(pants1[0].split(' ')[1].split(':')[1]),int(pants1[0].split(' ')[1].split(':')[2]))

date = datetime.datetime.combine(pantsDate, pantsTime)

必须有一种更好的方式来解析日期/时间信息,而不是我的方式,我愿意接受任何方法来获取matplotlib友好格式(数组或其他格式)。

一旦分割CSV的日期时间字符串,就可以使用strTime,如以下示例所示:

from datetime import datetime
parsed_value = '8/25/2017 14:55:49'
date = datetime.strptime(parsed_value, "%m/%d/%Y %H:%M:%S")
print(type(date))
print(date)
返回:

class 'datetime.datetime'>
2017-08-25 14:55:49

Process finished with exit code 0

分割CSV的日期时间字符串后,可以使用strTime,如下例所示:

from datetime import datetime
parsed_value = '8/25/2017 14:55:49'
date = datetime.strptime(parsed_value, "%m/%d/%Y %H:%M:%S")
print(type(date))
print(date)
返回:

class 'datetime.datetime'>
2017-08-25 14:55:49

Process finished with exit code 0

Pandas擅长处理日期时间格式,并与Matplotlib很好地集成

例如,使用示例数据:

datetime,temp1,temp2,temp3,temp4
8/25/2017 14:55:49,20.851,20.953,21.025,21.055
8/25/2017 14:56:49,20.799,20.944,20.99,21.029
如果将其保存为
example.csv
,则可以执行以下操作:

import pandas as pd
df = pd.read_csv("example.csv", parse_dates=['datetime'], index_col="datetime")
df.plot()

Pandas擅长处理日期时间格式,并与Matplotlib很好地集成

例如,使用示例数据:

datetime,temp1,temp2,temp3,temp4
8/25/2017 14:55:49,20.851,20.953,21.025,21.055
8/25/2017 14:56:49,20.799,20.944,20.99,21.029
如果将其保存为
example.csv
,则可以执行以下操作:

import pandas as pd
df = pd.read_csv("example.csv", parse_dates=['datetime'], index_col="datetime")
df.plot()