错误示例

在数据处理的过程中,我们会经常用到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()

解决「pyecharts使用pandas数据时,图表空白,只有坐标轴」的问题_数据分析

原因

这是因为在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()

解决「pyecharts使用pandas数据时,图表空白,只有坐标轴」的问题_数据_02