Skip to main content
 首页 » 编程设计

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

2025年05月04日12haluo1

以下数据可以使用 matplotlib 绘制,但不能在转换为 Pandas 系列后绘制。如何使用 pandas 绘制它?

没有 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) 

使用 Pandas

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

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

请您参考如下方法:

尝试去掉 Decimal 类型:

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

或

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

Pandas 仅支持 float 和 integer 作为数字类型,使用其他任何类型,它都成为“对象”。