0

考虑一个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。在 的情况下MultiIndexSeries.nametuple。但是,我找不到访问Series.name对应级别名称的方法。

在上面的例子中,有没有办法从系列中找出关卡名称('i', 'j')。是否有任何属性pd.Series包含此信息?

为什么这会成为问题?

考虑构建一个 API。其中一列代表一个人的一系列生物数据。我们想构建一个 API 来读取它并返回一个数字。作为 API 的一部分,我们希望支持一个名为“AGE”的可选级别。如果它存在于数据帧中,除了数据序列外,还将使用它。现在您想要构建 API,以便该函数在系列上运行,并且当使用 DataFrame 调用它时,它只是在各个列上执行 df.apply 并返回。用户从数据框中获取一列并且仍然能够调用我们的函数会更容易。现在该函数具有所有信息,但没有级别的名称。

4

0 回答 0