python - 为 panda 数据帧创建 x 和 y 坐标和时间戳的多重索引

标签 python pandas dataframe multi-index

我坚持为 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/

相关文章:

python - 过滤掉所有行中具有相同值的列

python - 通过读取 csv 文件列表在 pandas 中动态创建数据框

r - 由于特殊字符而面临更改数据帧结构的问题

python - 过滤重复项并向每个项目附加一个字符

python - 让函数相互交互的正确方法

python - while循环在django中递增范围

python - 导入错误: bad magic number in 'dateparser' : b'\x03\xf3\r\n'

python - 用新的 Dataframe 替换一行

python - 使用 pandas 读取多行标题的文本文件

python - 如何按列名称对数据框的多个部分进行切片?