pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改

本文介绍了如何使用Pandas的DataFrame对行名(index)和列名(columns)进行修改,包括rename()函数的用法、添加前缀和后缀的add_prefix()和add_suffix()方法,以及如何批量修改和更新index和columns元素。通过实例展示了如何进行单个或批量修改,并使用lambda表达式进行批处理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01_Pandas.DataFrame的行名和列名的修改

pandas.DataFrame行名(index)和列名(columns)的修改方法如下。

rename()

任意的行名(index)和列名(columns)的修改

add_prefix(), add_suffix()

列名的接头词和结尾词的追加

index和columns元素的更新

行名和列名全部修改

接下来,对每个方法进行说明。

rename()

多个行名和列名的修改

原DataFrame的修改(参数inplace)

使用lambda表达式和函数进行批处理

add_prefix(), add_suffix()

index和columns元素的更新

首先,先生成一个DaraFrame。

import pandas as pd

df = pd.DataFrame({'A': [11, 21, 31],

'B': [12, 22, 32],

'C': [13, 23, 33]},

index=['ONE', 'TWO', 'THREE'])

print(df)

# A B C

# ONE 11 12 13

# TWO 21 22 23

# THREE 31 32 33

DataFrame.rename()

函数DataFrame.rename()可以对任意行和列的名称进行修改。

DataFrame.rename()的参数有index和columns,使用"{旧值:新值}"字典的形式进行参数的指定。

index为行,columns为列。只想修改某行或者某列的时候,只需要单独指定一个参数即可。

修改后,返回一个新的DataFrame,原DataFrame并没有被修改。

df_new = df.rename(columns={'A': 'a'}, index={'ONE': 'one'})

print(df_new)

# a B C

# one 11 12 13

# TWO 21 22 23

# THREE 31 32 33

print(df)

# A B C

# ONE 11 12 13

# TWO 21 22 23

# THREE 31 32 33

多个行名和列名的修改

多个行名和列名可以同时修改。只需要追加参数(字典的元素)。

print(df.rename(columns={'A': 'a', 'C': 'c'}))

# a B c

# ONE 11 12 13

# TWO 21 22 23

# THREE 31 32 33

原DataFrame的修改(参数inplace)

默认的设置为原DataFrame不变,返回一个新的DataFrame。

当参数inplace为True时,原DataFrame将会被修改。返回值为None。

df_org = df.copy()

df_org.rename(columns={'A': 'a'}, index={'ONE': 'one'}, inplace=True)

print(df_org)

# a B C

# one 11 12 13

# TWO 21 22 23

# THREE 31 32 33

使用lambda表达式和函数进行批处理

rename()的参数index和columns值也可以指定为函数方法。

比如,大小写的转换。

print(df.rename(columns=str.lower, index=str.title))

# a b c

# One 11 12 13

# Two 21 22 23

# Three 31 32 33

lambda表达式-无名函数的指定。

print(df.rename(columns=lambda s: s*3, index=lambda s: s + '!!'))

# AAA BBB CCC

# ONE!! 11 12 13

# TWO!! 21 22 23

# THREE!! 31 32 33

add_prefix(), add_suffix()

列名的接头词和结尾词的追加方法。add_prefix()和add_suffix()。

在方法的参数里指定接头词或者结尾词。

print(df.add_prefix('X_'))

# X_A X_B X_C

# ONE 11 12 13

# TWO 21 22 23

# THREE 31 32 33

print(df.add_suffix('_X'))

# A_X B_X C_X

# ONE 11 12 13

# TWO 21 22 23

# THREE 31 32 33

add_prefix()和add_suffix()只能对列名(columns)进行修改。想要对行名进行修改的时候,可以参照上述lambda表达式的使用方法。

index和columns元素的更新

当想要对DataFrame里全部的元素修改或更新的时候,可以使用rename()方法的参数index,columns进行指定。

可以在index,columns属性中指定List,tuple,pandas.Series等。

df.index = [1, 2, 3]

df.columns = ['a', 'b', 'c']

print(df)

# a b c

# 1 11 12 13

# 2 21 22 23

# 3 31 32 33

此时,请注意,如果列表等的大小(元素数)与行数/列数不一致时,则会发生错误。

# df.index = [1, 2, 3, 4]

# ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements

饺子大人

发布了13 篇原创文章 · 获赞 0 · 访问量 354

私信

关注

标签:index,13,01,df,行名,DataFrame,add,columns

来源: https://blog.youkuaiyun.com/qq_18351157/article/details/104410294

### 回答1: 使用pandas.DataFrame.rename()函数可以dataframe字,例如:df.rename(columns={'old_column_name': 'new_column_name'}, inplace=True) ### 回答2: 使用pandas.DataFrame.rename()函数可以修改DataFrame列名或索引。 代码示例: ``` import pandas as pd # 创建一个示例DataFrame data = {'Name': ['Tom', 'Jerry', 'Spike'], 'Age': [20, 30, 25], 'City': ['Beijing', 'Shanghai', 'Guangzhou']} df = pd.DataFrame(data) print("修改前的列名:") print(df.columns) # 使用rename函数修改列名 new_columns = {'Name': '姓', 'Age': '年龄', 'City': '城市'} df = df.rename(columns=new_columns) print("修改后的列名:") print(df.columns) ``` 运结果: ``` 修改前的列名Index(['Name', 'Age', 'City'], dtype='object') 修改后的列名Index(['姓', '年龄', '城市'], dtype='object') ``` 在以上代码中,首先我们创建了一个示例DataFrame,并打印出了修改前的列名。然后定义了一个字典new_columns,其中键为原来的列名,值为要修改成的新列名。最后使用rename函数将字典传给参数columns,将DataFrame列名修改,并打印出了修改后的列名。 ### 回答3: 使用pandas.DataFrame.rename()函数可以修改DataFrame列名。可以通过传递一个字典给rename()函数,字典的key表示要修改的原始列名,value表示要修改成的新的列名。 以下是一个示例代码: ```python import pandas as pd # 创建一个示例DataFrame data = {'Name': ['Tom', 'Nick', 'John'], 'Age': [20, 25, 30], 'City': ['New York', 'Paris', 'London']} df = pd.DataFrame(data) print("修改前的DataFrame:") print(df) # 使用rename函数修改列名 new_column_names = {'Name': '姓', 'Age': '年龄', 'City': '城市'} df = df.rename(columns=new_column_names) print("\n修改后的DataFrame:") print(df) ``` 输出结果: ``` 修改前的DataFrame: Name Age City 0 Tom 20 New York 1 Nick 25 Paris 2 John 30 London 修改后的DataFrame: 姓 年龄 城市 0 Tom 20 New York 1 Nick 25 Paris 2 John 30 London ``` 在上面的代码中,首先创建一个示例的DataFrame,然后使用rename()函数将列名从`Name`、`Age``City`修改为`姓`、`年龄``城市`。修改后的DataFrame打印出来,可以看到列名已经成功被修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值