考虑一个DataFrame:
df = pd.DataFrame(columns=pd.MultiIndex.from_product([[1,2],[3,4]], names=['i', 'j']), index=[0]).fillna(0)
In [12]: df
Out[12]:
i 1 2
j 3 4 3 4
0 0 0 0 0
当我们Series从 a中选择 a 时DataFrame,我们得到了index完整的信息。
In [13]: df.iloc[:, 0]
Out[13]:
0 0
Name: (1, 3), dtype: int64
包含来自的Series.name特定值DataFrame.columns。在 的情况下MultiIndex,Series.name是tuple。但是,我找不到访问Series.name对应级别名称的方法。
在上面的例子中,有没有办法从系列中找出关卡名称('i', 'j')。是否有任何属性pd.Series包含此信息?
为什么这会成为问题?
考虑构建一个 API。其中一列代表一个人的一系列生物数据。我们想构建一个 API 来读取它并返回一个数字。作为 API 的一部分,我们希望支持一个名为“AGE”的可选级别。如果它存在于数据帧中,除了数据序列外,还将使用它。现在您想要构建 API,以便该函数在系列上运行,并且当使用 DataFrame 调用它时,它只是在各个列上执行 df.apply 并返回。用户从数据框中获取一列并且仍然能够调用我们的函数会更容易。现在该函数具有所有信息,但没有级别的名称。