python重命名csv文件_python - 重命名Pandas DataFrame索引

当前选择的答案未提及可用于重命名索引和列级别的rename_axis方法。

在重命名指数水平时,熊猫有些怪癖。 还有一个新的DataFrame方法rename_axis可用于更改索引级别名称。

我们来看看DataFrame

df = pd.DataFrame({'age':[30, 2, 12],

'color':['blue', 'green', 'red'],

'food':['Steak', 'Lamb', 'Mango'],

'height':[165, 70, 120],

'score':[4.6, 8.3, 9.0],

'state':['NY', 'TX', 'FL']},

index = ['Jane', 'Nick', 'Aaron'])

此DataFrame为每个行索引和列索引都有一个级别。 行索引和列索引都没有名称。 让我们将行索引级别名称更改为“名称”。

df.rename_axis('names')

rename_axis方法还可以通过更改axis参数来更改列级别名称:

df.rename_axis('names').rename_axis('attributes', axis='columns')

如果使用某些列设置索引,则列名称将成为新的索引级别名称。 让我们将索引级别附加到原始DataFrame:

df1 = df.set_index(['state', 'color'], append=True)

df1

注意原始索引没有名称。 我们仍然可以使用rename_axis,但需要传递一个与索引级别数相同长度的列表。

df1.rename_axis(['names', None, 'Colors'])

您可以使用rename_axis有效删除索引级别名称。

系列工作类似,但有一些差异

让我们创建一个具有三个索引级别的系列

s = df.set_index(['state', 'color'], append=True)['food']

s

state color

Jane NY blue Steak

Nick TX green Lamb

Aaron FL red Mango

Name: food, dtype: object

我们可以像使用DataFrames一样使用rename_axis

s.rename_axis(['Names','States','Colors'])

Names States Colors

Jane NY blue Steak

Nick TX green Lamb

Aaron FL red Mango

Name: food, dtype: object

请注意,系列下面有一个额外的元数据,名为rename_axis。从DataFrame创建Series时,此属性设置为列名。

我们可以将字符串名称传递给rename_axis方法来进行更改

s.rename('FOOOOOD')

state color

Jane NY blue Steak

Nick TX green Lamb

Aaron FL red Mango

Name: FOOOOOD, dtype: object

DataFrames没有此属性,如果像这样使用,实际上会引发异常

df.rename('my dataframe')

TypeError: 'str' object is not callable

在pandas 0.21之前,您可以使用rename_axis重命名索引和列中的值。 它已被弃用,所以不要这样做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值