我想要一个索引从1开始的数据帧.我还想重命名该索引.

这些操作的执行顺序并不重要,我只想确保头文件不会被分割.

这当然是一个重复的问题,但我似乎找不到它(!)

这不起作用:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.index += 1
df.rename_axis('rank')

>>>
        A   B
rank        
   1    1   4
   2    2   5
   3    3   6

这一点也不是:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.rename_axis('rank')
df.index += 1

>>>
    A   B
1   1   4
2   2   5
3   3   6

预期结果:

rank    A   B   
   1    1   4
   2    2   5
   3    3   6

推荐答案

rename_axis不在适当位置,但返回一个新的DataFrame.您需要指定输出:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.index += 1
df = df.rename_axis('rank')

print(df)

如果您想要一个命令,请使用Index.rename:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

df.index = df.index.rename('rank')+1

print(df)

修改后的df:

      A  B
rank      
1     1  4
2     2  5
3     3  6

如果要将其显示在同一层,请使用reset_indexto_string:

print(df.reset_index().to_string(index=False))

输出:

 rank  A  B
    1  1  4
    2  2  5
    3  3  6

Python相关问答推荐

如何在WTForm中使用back_plumates参考brand_id?

Asyncio与队列的多处理通信-仅运行一个协程

取相框中一列的第二位数字

两极:如何分割一个大 pyramid 并并行保存每个

如何在不使用字符串的情况下将namedtuple属性传递给方法?

"如果发生特定错误,返回值

使用图片生成PDF Django rest框架

在使用Guouti包的Python中运行MPP模型时内存不足

覆盖Django rest响应,仅返回PK

根据网格和相机参数渲染深度

点到面的Y距离

将两只Pandas rame乘以指数

加速Python循环

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

如何启动下载并在不击中磁盘的情况下呈现响应?

如何合并两个列表,并获得每个索引值最高的列表名称?

如何指定列数据类型

使用特定值作为引用替换数据框行上的值

在Python中调用变量(特别是Tkinter)