怎么重命名Pandas DataFrame中的列名
在Pandas Dataframe中重命名列名非常简单,只需要使用rename()方法。rename()方法接受一个字典参数,其中键是原始列名,值是新的列名。
让我们从一个简单的例子开始。假设我们有以下Dataframe:
import pandas as pd
data = {'name': ['John', 'Paul', 'George', 'Ringo'],
'age': [22, 21, 23, 23],
'city': ['New York', 'London', 'Liverpool', 'Liverpool']}
df = pd.DataFrame(data)
print(df)
这将输出以下内容:
name age city
0 John 22 New York
1 Paul 21 London
2 George 23 Liverpool
3 Ringo 23 Liverpool
假设我们想将列“name”重命名为“firstname”,列“age”重命名为“age_in_years”,并将列“city”保持不变。通过使用rename()方法,我们可以轻松地实现这一点:
new_col_names = {'name': 'firstname', 'age': 'age_in_years'}
df = df.rename(columns=new_col_names)
print(df)
这将输出以下内容:
firstname age_in_years city 0 John 22 New York 1 Paul 21 London 2 George 23 Liverpool 3 Ringo 23 Liverpool
请注意,我们只传递了要重命名的列和新列的名称的字典。将此字典传递给rename()方法将列名更改为新名称。我们还可以使用inplace参数来表示是否要更改Dataframe本身,而不是返回一个新的Dataframe。
在rename()方法中,还可以使用axis参数来指定列名更改的方向。例如,当axis = 1时将更改列名,当axis = 0时将更改索引名称。
df.rename(columns={'name': 'firstname', 'age': 'age_in_years'}, inplace=True)
使用inplace = True参数可以直接修改Dataframe,这样就不需要为返回值重新分配变量。
除了使用字典来重命名列以外,还可以使用其他参数来使用函数或使用字符串格式来重命名列名。
例如,要将所有列名转换为小写:
df.columns = map(str.lower, df.columns)
使用.map()方法对所有列名进行操作,并使用str.lower()函数将它们转换为小写。
要使用字符串格式进行重命名:
df.columns = ['first_name', 'age_in_years', 'hometown']
这将使用一个列表将列名重命名为指定的名称。注意,在这种情况下,您必须给出所有列名,如果没有给出所有列名,您将失去未命名列所包含的信息。
在此简短的教程中,我们学习了如何使用Pandas Dataframe的rename()方法重命名列名。通过简单地定义一个字典,我们可以将一列重命名为另一列。我们还了解了其他的重命名选项,例如使用函数或字符串格式来重命名列名。来试试吧!
