python - 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”数据呢?
解决方案
根据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()