python - pd.pivot_table 如何/在哪里存储或引用其索引和列变量的名称?

标签 python pandas inheritance dataframe pivot-table

我无法弄清楚 pandas pd.pivot_table 如何存储或引用表行/索引中变量的名称列;从源代码来看,它似乎没有将它们存储在其任何属性中的任何位置,尽管 str(tbl) 显然是从某个地方获取它们的。花了几个小时试图弄清楚但不能:

仅供引用,类层次结构是:pivot_table (tools/pivot.py)类 DataFrame (core/frame.py) 的实例,它继承自 -> NDFrame (core/generic .py) -> PandasObject (core/base.py) -> StringMixin。但是在浏览完所有源代码之后,我没有看到变量名称存储在该层次结构中的任何位置?!

import pandas as pd
import numpy as np

df = pd.DataFrame({'foo': [1,2,2,3,2,3,1,3],
                   'bar': [8,6,8,7,7,6,6,7],
                   'baz': np.random.rand(8).round(2)})

tbl = df.pivot_table(values='baz', index='foo', columns='bar')

# where are the names 'foo', 'bar' stored inside the attributes of tbl?

# bar     6      7     8
# foo                   
# 1    0.39    NaN  0.97
# 2    0.76  0.240  0.97
# 3    0.18  0.245   NaN

最佳答案

'foo'和'bar'分别存储为tbl的索引和列索引的名称。索引对象与 DataFrame/NDFrame 对象不同。

>>> tbl.index.name
'foo'
>>> tbl.columns.name
'bar'

设置 .name 属性的源代码的相关部分是 here .

关于python - pd.pivot_table 如何/在哪里存储或引用其索引和列变量的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32300884/

相关文章:

python - 一个简单例子的空间复杂度

使用正则表达式拆分 Python 字符串

python - 如何使用 Pandas 在 Python 中实现快速拼写检查器?

python pandas isin 方法?

java - 带有文件名的子类中出现奇怪的错误

java - Android:我可以覆盖具有自己布局的第三方类(库)吗?

python - Flask-sqlalchemy 不会将表名转换为小写(mysql)

python - 高速公路网络套接字

python - 尽管索引匹配,但 pd.IndexSlice 的 pd.Series 赋值会导致 NaN 值

java - 利用继承和多态来绘制图像?