首页 > 解决方案 > pandas 数据框转换为 xyz 数据以用于 pyecharts

问题描述

我正在尝试使用 pyecharts 绘制 3D-BARS 图,如下所示的数据结构来自 csv 文件。

Date        School1 School2 School3
2021/3/1    853     195     316 
2021/3/2    165     257     461 
2021/3/3    469     314     167 
2021/3/4    857     532     495 
2021/3/5    326     139     595 
2021/3/6    802     616     439 
2021/3/7    768     962     416 
2021/3/8    911     241     82 
2021/3/9    960     965     229 

Pyecharts Bar3D 以 X、Y、Z 轴方式绘制数据,如下顺序:

x0,y0,z0(value)
x0,y1,z1
x0,y2,z2
...
x1,y0,zn

那么有没有什么简单的方法可以将上述数据帧数据转换成这个“xyz”数据呢?

标签: pythonpandas

解决方案


根据bar3d()data由二维数组表示。因为school1,我认为你可以做类似的事情

df['y'] = 0

data = df[['Date', 'y', 'School1']].values.tolist()
print(data)

[['2021/3/1', 0, 853], ['2021/3/2', 0, 165], ['2021/3/3', 0, 469], ['2021/3/4', 0, 857], ['2021/3/5', 0, 326], ['2021/3/6', 0, 802], ['2021/3/7', 0, 768], ['2021/3/8', 0, 911], ['2021/3/9', 0, 960]]

如果您不想编辑原始数据框

df_ = pd.concat([df['Date'], pd.Series([0]*len(df)), df['School1']], axis=1)

data = df_.values.tolist()

推荐阅读