我有一个.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
答案 0 :(得分:3)
您可以将所有数据to_timedelta
转换为total_seconds
- 整数,因此可以绘制。使用Apply
是因为to_timedelta
仅适用于Series
(df
的列
data = data.apply(lambda x: pd.to_timedelta(x).dt.total_seconds())
data.plot.bar()