错误示例
在数据处理的过程中,我们会经常用到pandas,如果直接将pandas中的数据直接传入Pyecharts中使用,会发现图表是空白的,只剩坐标轴。
如下:
df = pd.DataFrame(
dict(Brand=['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'],
sales=[123, 153, 89, 107, 98, 23])
)
bar = (Bar()
.add_xaxis(df['Brand'])
.add_yaxis('', df['sales'])
)
bar.render_notebook()
原因
这是因为在pandas中数据类型是继承自numpy,而并非python的int
,float
,Pyecharts中并为针对pandas的数据类型做特殊处理。
print(df['sales'][0])
print(type(df['sales'][0]))
print(type(123))
print(type(12.))
--------
"""输出结果
123
<class 'numpy.int64'>
<class 'int'>
<class 'float'>
"""
解决办法
通过.tolist()
方法将pandas.series
将数据转为list
,如下示例:
df = pd.DataFrame(
dict(Brand=['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu'],
sales=[123, 153, 89, 107, 98, 23])
)
bar = (Bar()
.add_xaxis(df['Brand'].tolist())
.add_yaxis('', df['sales'].tolist())
)
bar.render_notebook()