python - Pandas 重新索引数据框问题

标签 python pandas

假设我有以下数据框,

         A       B
0  1986-87  232131
1  1987-88  564564
2  1988-89  123125
               ...

等等。

我正在尝试使用 <myFrame>.set_index('A') 重新编制索引,以便我得到

                B
  1986-87  232131
  1987-88  564564
  1988-89  123125

但我一直得到这个:

               B
       A       
 1986-87  232131
 1987-88  564564
 1988-89  123125

这很烦人,因为我尝试了其他重建索引的方法。我不确定 A 实际上代表什么,因为它没有出现在 <myFrame>.columns<myFrame>.index 中,做 <myFrame>['B'][0] 给了我 232131 ,那么这个重新索引的数据框中的 A 是什么,我如何从头开始正确索引或摆脱这个奇怪的 A 在不正确的 reindex 数据框中。

最佳答案

您需要重置索引的名称/名称属性:

df.index.names = [None]

例子:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B']).set_index('A')

In [12]: df
Out[12]: 
   B
A   
1  2
3  4

In [13]: df.index.names = [None]

In [14]: df
Out[14]: 
   B
1  2
3  4

名称描述了索引,并为索引赋予了一些含义,还区分了索引中的不同级别(在 MultiIndex 中)。

正如@DSM 指出的那样,这样做后果自负,如果您想重置索引,这会丢失信息:

In [15]: df.reset_index() # col_fill=['A', 'B'])
Out[15]: 
   index  B
0      1  2
1      3  4

但是,您可以手动 col_fill 名称:

In [16]: df.reset_index(col_fill=['A'])
Out[16]: 
   A  B
0  1  2
1  3  4

关于python - Pandas 重新索引数据框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037966/

相关文章:

python - Sprite 碰撞

python - 在 python/numpy 中优化矩阵写入

python - 我不明白如何为我想在 python 中打开的文件指定路径

python - 如何获取数据框列中第一次出现的单词?

python - 将列转换为日期格式( Pandas 数据框)

python - 在 Python 中运行时出现 MySQL 查询错误,但在直接运行时却没有

python - 将 python 函数转换为 cython

python - 在数据框中查找空值的有效方法

python - 列表值作为多索引数据框的字典

python - 在大型矩阵上计算时 MDS 挂起