如何在python中重命名数据框架中的特定列

151 阅读4分钟

Pandas数据框架是用来处理Python中的表格数据的。在这篇文章中,我们将讨论如何在python中重命名数据框架中的特定列。

通过索引重命名数据框架中的特定列

我们可以使用'columns'属性访问pandas数据框架中的列名。当在一个数据框架对象上调用'columns'属性时,会返回一个索引对象。你可以在下面的例子中观察到这一点。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe is:")
print(df1)
columns = df1.columns
print("The column object is:")
print(columns)

输出

The dataframe is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The column object is:
Index(['Name', 'Roll Number', ' Subject'], dtype='object')

该索引对象包含'values'属性,其中所有的列名都存储在一个数组中,如下图所示。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe is:")
print(df1)
columns = df1.columns
print("The column object is:")
print(columns)
print("The column value is")
print(columns.values)

输出

The dataframe is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The column object is:
Index(['Name', 'Roll Number', ' Subject'], dtype='object')
The column value is
['Name' 'Roll Number' ' Subject']

为了重新命名数据框架中的特定列,我们可以改变数值数组的元素。例如,我们可以将数值数组中的数值“Roll Number” 改为“Registration Number” ,如下所示。

df1.columns.values[1] = "Registration Number"

上述改变会反映在pandas数据框架的列名中。因此,在数据框架中,“Roll Number” 列名将被改为“Registration Number” 列名。你可以在下面的例子中观察到这一点。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe before modification is:")
print(df1)
df1.columns.values[1] = "Registration Number"
print("The dataframe after modification is:")
print(df1)

输出

The dataframe before modification is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The dataframe after modification is:
     Name  Registration Number      Subject
0  Aditya                   12       Python
1     Sam                   23         Java
2   Chris                   11          C++
3    Joel                   10   JavaScript
4  Mayank                    5   Typescript

为了一次改变多个列名,你也可以改变数值数组中的多个数值。这个变化也会反映在数据框中。

使用rename()方法重命名数据框架中的特定列

我们可以使用rename() 方法来重命名数据框架中的特定列,而不是使用 "values"数组。rename() 方法,当在一个数据框架上调用时,需要一个字典映射作为其输入参数。该映射应该包含需要重命名的列名作为key,而新的列名应该是与字典中key相关的值。执行后,rename() 方法将返回一个新的数据框架,其中输入字典中给出的特定列被重新命名。你可以在下面的例子中观察到这一点。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe before modification is:")
print(df1)
new_df = df1.rename(columns={'Roll Number': "Registration Number"})
print("The dataframe after modification is:")
print(new_df)

输出

The dataframe before modification is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The dataframe after modification is:
     Name  Registration Number      Subject
0  Aditya                   12       Python
1     Sam                   23         Java
2   Chris                   11          C++
3    Joel                   10   JavaScript
4  Mayank                    5   Typescript

要重命名多个列,你可以在作为输入参数提供给rename() 方法的python 字典中以键值对的形式传递多个列名和它们相应的更改后的名称,如下所示。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe before modification is:")
print(df1)
new_df = df1.rename(columns={' Subject': "Language", 'Roll Number': "Registration Number"})
print("The dataframe after modification is:")
print(new_df)

输出

The dataframe before modification is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The dataframe after modification is:
     Name  Registration Number     Language
0  Aditya                   12       Python
1     Sam                   23         Java
2   Chris                   11          C++
3    Joel                   10   JavaScript
4  Mayank                    5   Typescript

你也可以使用rename() 方法改变现有数据框架的列名,而不是用改变后的列名创建一个新的数据框架。为此,我们将使用rename() 方法的'inplace'参数。'inplace' 参数的默认值是False ,这意味着原始数据框架没有被修改,在重新命名列之后会返回一个新的数据框架。要修改原始数据框架的列名,你可以将值True 作为输入参数传递给 'inplace' 参数,如下所示。

import pandas as pd

df1 = pd.read_csv('student_details.csv')
print("The dataframe before modification is:")
print(df1)
df1.rename(columns={' Subject': "Language", 'Roll Number': "Registration Number"},inplace=True)
print("The dataframe after modification is:")
print(df1)

输出

The dataframe before modification is:
     Name  Roll Number      Subject
0  Aditya           12       Python
1     Sam           23         Java
2   Chris           11          C++
3    Joel           10   JavaScript
4  Mayank            5   Typescript
The dataframe after modification is:
     Name  Registration Number     Language
0  Aditya                   12       Python
1     Sam                   23         Java
2   Chris                   11          C++
3    Joel                   10   JavaScript
4  Mayank                    5   Typescript

在上面的例子中,你可以观察到,在使用'inplace'参数后,原始数据框架已经被修改。

总结

在这篇文章中,我们讨论了重命名数据框架中特定列的各种方法。