我坚持为 pandas 数据帧创建多重索引的知识。 我的数据框是一个 230 x 640 的图像。我添加了一个带有时间戳的列,现在我想用我的 x 和 y 坐标以及时间戳创建一个多重索引。我还需要时间戳作为索引,因为我连接具有不同时间戳但具有相同帧宽度和高度的多个帧。
有没有办法创建这样的索引?我的目标是得到:2 和 0 的 Hey 值太高。
Image of dataframe without index
我的数据框看起来像(val 是温度值):
0 1 2 .. 639 ts
0 val val val .. val
1 val ..
2 ..
..
229
最佳答案
我相信这符合您的要求。
我假设你的“x”在你的行中,你的“y”在你的列中,并且你想要一个带有[“ts”,“x”,“y”]的多重索引:
(df
.rename_axis('x').reset_index()
.set_index(['ts', 'x'])
.rename_axis('y', axis=1).stack()
.rename('value')
)
分解:
rename_axis('x').reset_index()
:将当前索引重命名为“x”并将其转换为常规列(下一步将需要该列)。set_index(['ts', 'x'])
:将索引设置为带有 ["ts", "x"] 的 MultiIndex。这与原始 DataFrame 非常相似,只是将“ts”移动到索引。rename_axis('y', axis=1)
:将列轴命名为“y”。stack()
:将列转换为行,将第三个组件添加到 MultiIndex。生成的系列应该具有您想要的形状。rename('value')
:将系列重命名为“value”,以防您将其转回 DataFrame,其中to_frame()
将作为其名称作为一列。
关于python - 为 panda 数据帧创建 x 和 y 坐标和时间戳的多重索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60304377/