python - 像访问常规列一样访问 Pandas 索引

标签 python pandas dataframe indexing series

我有一个带有命名索引的 Pandas DataFrame。我想将它传递给一段代码,该代码采用 DataFrame、列名和一些其他内容,并执行大量涉及该列的工作。只有在这种情况下,我要突出显示的列是索引,但是将索引的标签提供给这段代码是行不通的,因为您不能像提取常规列那样提取索引。例如,我可以像这样构造一个 DataFrame:

import pandas as pd, numpy as np

df=pd.DataFrame({'name':map(chr, range(97, 102)), 'id':range(10000,10005), 'value':np.random.randn(5)})
df.set_index('name', inplace=True)

结果如下:

         id     value
name                 
a     10000  0.659710
b     10001  1.001821
c     10002 -0.197576
d     10003 -0.569181
e     10004 -0.882097

现在如何允许我访问 name 列?

print(df.index)  # No problem
print(df['name'])  # KeyError: u'name'

我知道有一些解决方法,例如复制列或将索引更改为其他内容。但是有没有更干净的东西,比如某种形式的列访问,它像对待其他一切一样对待索引?

最佳答案

索引在 Pandas 中有特殊的含义。它用于优化特定操作,可用于合并/连接数据等各种方法。因此,做出选择:

  • 如果它“只是另一列”,请使用 reset_index 并将其视为另一列。
  • 如果它真正用于索引,请将其保留为索引并使用 df.index

我们无法为您做出选择。它应该取决于您的基础数据的结构以及您打算如何分析数据。

有关使用数据帧索引的更多信息,请参阅:

关于python - 像访问常规列一样访问 Pandas 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52139506/

相关文章:

python - SQLAlchemy 中的 Session 和 db.session 有什么区别?

python - 适用于 Windows SDK 的 iTunes COM 中的媒体种类

python - Pandas突然无法打开Excel文件(在OLE2复合文档中找不到工作簿

python - 在 Pandas Dataframe 上使用 groupby 按一列重新排列,其中仅另一列的最大值

python - 合并一些重叠列上的两个数据框,同时保留不重叠的列

python - 使用python将字符数组转换为整数

python - 使用 pygtk 和 glade 将 pixbuf 绘制到绘图区域

python dataframe pandas使用int删除列

pandas - 如何使用计数在 Pandas 中进行 vlookup

python - numpy sort 在对 pandas DataFrame 进行排序时表现得很奇怪