Pandas Multiindex数据帧.loc根据级别产生多任务或正常数据帧



我正在使用panda,有一个分层的多索引数据帧,并使用.loc方法来选择不同的部分。假设我的数据帧由不同患者名称的第一级和不同骨骼名称的第二级组成。在本例中还存在仅具有一个值("triangleQuality"(的第三级别。对于每个组合,我都有一个带值的数组。

因此,数据帧如下所示多索引数据帧

要为一名患者选择所有骨骼,我使用命令dataframe.loc[(patient_name, slice(None), "triangleQuality")]这将产生一个具有多索引的新数据帧。

如果我想要一块骨头的所有患者,我会使用命令dataframe.loc[(slice(None), bone_name, "triangleQuality")]。这会产生一个具有正常索引的数据帧。

所以我的问题如下:

  1. 为什么两个命令的结果不同
  2. 如何获得第一个任务的正常(无多索引(数据帧(一个患者的所有骨骼及其值(

如有任何帮助,我们将不胜感激!

  1. 为什么两个命令的结果不同

您目前正在做的工作称为"访问Pandas中多索引数据帧中的数据"访问同一数据帧的方式本身就不同。在第一个命令中,仅显示一个患者的所有骨骼及其值。在第二个命令中,您只显示一个骨骼的所有患者及其值

如果你仍然想保留未显示的部分,你可以使用括号,命令如下所示:

dataframe.loc[([patient_name],slice(None(,"triangleQuality"(]
dataframe.loc[(slice(None(,[bone_name],"tringleQuality">

  1. 如何获得第一个任务的正常(无多索引(数据帧(一个患者的所有骨骼及其值(

df.loc[('Pat.Nr. 100 NiFr right', slice(None),"triangleQuality")]

当我运行此命令时,我已经获得了一个患者的所有骨骼及其值的单个索引数据帧

最新更新