还有一些关于同一主题的其他问题,但所需的格式完全不同。
我正在尝试使用 holoviews and bokeh 构建热图可视化
我的数据正在作为 Excel 文件读入数据框中,大致如下:
Foo Bar Bash Baz ...
A 1 2 3 4
B 2 1 0 3
C 0 0 2 0
D 2 3 5 1
...
文档称热图的数据可以作为具有一个或多个关联值维度的 2D 表格数据提供。
绘制数据框本身不起作用,我觉得我需要将数据转换为如下形式:
[('A', 'Foo', 1), ('A', 'Bar', 2), ('A', 'Bash', 3), ('A', 'Baz', 4), ('B', 'Foo', 1)...]
有没有比手动迭代整个数据帧并手动构建它更快的方法?
最佳答案
您可以先通过stack
reshape 形状然后转换为元组
:
tups = [tuple(x) for x in df.stack().reset_index().values.tolist()]
另一个类似的解决方案是创建 3 个级别 MultiIndex
:
tups = df.stack().to_frame().set_index(0, append=True).index.tolist()
或者zip
3个单独的数组
,其中numpy.repeat
, numpy.tile
和 ravel
:
a = np.repeat(df.index, len(df.columns))
b = np.tile(df.columns, len(df))
c = df.values.ravel()
tups = list(zip(a,b,c))
关于python - 将 pandas 数据帧转换为元组列表 - ('Row' 、 'Column' 、值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505678/