能够作为列表绘制,无法绘制为Pandas系列

时间:2013-11-13 02:30:57

标签: python python-2.7 matplotlib pandas

以下数据可以使用matplotlib进行绘制,但在转换为Pandas系列后无法绘制。如何使用熊猫绘制?

没有大熊猫

scores = [Decimal('3.7989'),
 Decimal('4.7989'),
 Decimal('5.7989'),
 Decimal('6.7989'),
 Decimal('7.7989')]

 timestamps = [datetime.datetime(2013, 11, 12, 21, 21, 52),
 datetime.datetime(2013, 11, 12, 21, 21, 8),
 datetime.datetime(2013, 11, 12, 21, 21, 1),
 datetime.datetime(2013, 11, 12, 21, 20, 1),
 datetime.datetime(2013, 11, 12, 21, 19, 33)]

 plt.plot(timestamps,score)

enter image description here

使用pandas

ts = pd.Series(scores, index=timestamps)
ts.plot()

我们收到错误:TypeError: Series has object dtype and cannot be converted: no numeric data to plot

1 个答案:

答案 0 :(得分:1)

尝试取走Decimal类型:

ts = pd.Series([float(x) for x in scores], index=timestamps)

ts = pd.Series(scores, index=timestamps, dtype='float64')

Pandas只支持float和integer作为数字类型,使用其他任何东西,它就变成了“对象”。