dataframe行列索引设置与转换

1. 获取行列索引

Example

df = pd.DataFrame([('bird', 389.0),
                   ('bird', 24.0),
                   ('mammal', 80.5),
                   ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'],
                  columns=('class', 'max_speed'))

在这里插入图片描述

  • 获取行索引
df.index
# output
# Index(['falcon', 'parrot', 'lion', 'monkey'], dtype='object')
  • 获取列索引
df.columns
# output
# Index(['class', 'max_speed'], dtype='object')

2. 修改行列索引

2.1 暴力修改(必须修改全部索引)

  • 修改列索引
df.columns=['Class', 'Max_speed']

在这里插入图片描述

  • 修改行索引
df.index=['Falcon', 'Parrot', 'Lion', 'Monkey']

在这里插入图片描述

2.2 pd.rename修改 (可修改部分索引)

pandas.rename官方文档

Series.rename(index=None, *, axis=None, copy=True, inplace=False, level=None, errors=‘ignore’)

df.rename(index={'Falcon':'falcon', 'Parrot':'parrot', 'Lion':'lion', 'Monkey':'monkey'}, 
          columns={'Class':'class', 'Max_speed':'max_speed'}, inplace=True)

在这里插入图片描述

3. 列与索引的互相转化

3.1 列转换成索引

pandas.DataFrame.set_index官方文档

DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

  • keys: 设置为索引的列名,以list的形式表示
  • drop: 是否删除被设为索引的列,默认True(删除)
  • append: 是否将新索引列附加到旧索引列上,默认False(不附加)
  • inplace: 是否修改原数据,默认为False
  • verify_integrity: 检查索引是否重复。默认False。

设置 ‘class’ 为索引列

df.set_index('class')

在这里插入图片描述

df.set_index('class', drop=False)

在这里插入图片描述

df.set_index('class', append=True)

在这里插入图片描述

设置多索引

df.set_index([pd.index([1, 2, 3, 4]), 'class'])

在这里插入图片描述

3.2 将索引转换为列

pandas.DataFrame.reset_index 官方文档

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=’’)

  • level: 用于指定要将层次化索引的第几层转化为columns,第一个索引为0级,第二个为1级,默认为None(全部索引)。也可以用list的形式表示
  • drop: 是否删除索引列,默认False。
  • inplace: 是否修改原数据
  • col_level: 当有多列索引时,选取特定层级转换为列
  • col_fill: 当㓟多列索引时,确定转换为列的索引的名称

重新设置索引

df.reset_index()

在这里插入图片描述

删除序索引列

df.reset_index(drop=True)

在这里插入图片描述

设置多列索引

df.set_index(['index', 'class'], inplace=True)

在这里插入图片描述

df.reset_index('index')

在这里插入图片描述

df.reset_index(['index', 'class'])

在这里插入图片描述

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值