绘制时间戳数据框的图表

时间:2016-11-22 19:49:55

标签: python pandas numpy matplotlib

我有一个.csv - 文件,其中包含如下所示的时间跨度列表:

  

00:00:00.000580; 00:00:00.000893; 00:00:00.001355; 00:00:00.001767; 00:00:00.001973; 00:00:00.002694;   00:00:00.000069; 00:00:00.000689; 00:00:00.000873; 00:00:00.001097; 00:00:00.001920; 00:00:00.002563;   00:00:00.000812; 00:00:00.001307; 00:00:00.001701; 00:00:00.002561; 00:00:00.003196; 00:00:00.003600;   00:00:00.000702; 00:00:00.001229; 00:00:00.001750; 00:00:00.002014; 00:00:00.002633; 00:00:00.003152;   00:00:00.000776; 00:00:00.001774; 00:00:00.001989; 00:00:00.002115; 00:00:00.002504; 00:00:00.003228;

     

...

我想使用jupyter笔记本和pandas来读取此文件并打印一个简单的数据图表。这是我正在使用的代码:

import pandas as pd

inputFile = "D:\\times.csv"

names = ['First', 'Second', 'Third', 'Fourth', 'Fivth', 'Sixth'] 
usecols = [0,1,2,3,4,5]
data = pd.read_csv(inputFile, usecols=usecols, sep=';', header=None, names=names, parse_dates=True)

#data.head()
data.plot.bar()

每当我运行我的notbook时,都会收到错误消息

  

TypeError:清空'DataFrame':没有要绘制的数字数据

似乎正确导入了csv文件,因为我可以使用DataFrame写出data.head()的内容,看起来没问题。

从数据中绘制图表需要做什么?

修改

这是我从data.info()得到的:

  


  RangeIndex:200个条目,0到199
  数据列(共6列):
  前200个非空对象
  第二个200个非空对象
  第三个200非空对象
  第四个200非空对象
  Fivth 200非空对象
  第六百200个非空对象
  dtypes:object(6)
  内存使用量:9.5+ KB

1 个答案:

答案 0 :(得分:3)

您可以将所有数据to_timedelta转换为total_seconds - 整数,因此可以绘制。使用Apply是因为to_timedelta仅适用于Seriesdf的列

data = data.apply(lambda x: pd.to_timedelta(x).dt.total_seconds())

data.plot.bar()

graph