pandas 列更名
在数据处理过程中,经常需要对数据框中的列进行更名操作。pandas 提供了 rename() 方法来实现列更名操作。本文将详细介绍如何使用 pandas 进行列更名,并且会给出多个实际案例来帮助读者更好地理解这一操作。
基本用法
我们先来看一个简单的示例,假设我们有一个包含两列的数据框,分别为 ‘old_name1’ 和 ‘old_name2’:
import pandas as pd
data = {'old_name1': [1, 2, 3], 'old_name2': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
运行上述代码,得到的输出为:
old_name1 old_name2
0 1 4
1 2 5
2 3 6
现在我们想将列 ‘old_name1’ 和 ‘old_name2’ 更名为 ‘new_name1’ 和 ‘new_name2’,可以使用 rename() 方法:
df = df.rename(columns={'old_name1': 'new_name1', 'old_name2': 'new_name2'})
print(df)
运行上述代码,得到的输出为:
new_name1 new_name2
0 1 4
1 2 5
2 3 6
可以看到,列名已经成功更改为了 ‘new_name1’ 和 ‘new_name2’。
案例分析
接下来,我们将通过几个案例来演示列更名的更多用法。
案例一:单个列更名
假设我们有一个包含两列的数据框,分别为 ‘A’ 和 ‘B’:
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
运行上述代码,得到的输出为:
A B
0 1 4
1 2 5
2 3 6
现在我们想将列 ‘A’ 更名为 ‘C’,可以使用 rename() 方法:
df = df.rename(columns={'A': 'C'})
print(df)
运行上述代码,得到的输出为:
C B
0 1 4
1 2 5
2 3 6
案例二:根据条件更名
有时候,我们可能需要根据条件对列进行更名。例如,如果列名包含字符串 ‘geek-docs.com’,我们想将该列更名为 ‘new_column’:
data = {'column1_geek-docs.com': [1, 2, 3], 'column2': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)
运行上述代码,得到的输出为:
column1_geek-docs.com column2
0 1 4
1 2 5
2 3 6
我们可以使用 rename() 方法和 lambda 函数来实现:
df = df.rename(columns=lambda x: 'new_column' if 'geek-docs.com' in x else x)
print(df)
运行上述代码,得到的输出为:
new_column column2
0 1 4
1 2 5
2 3 6
案例三:一次更名多列
当需要一次性更名多列时,可以将需要更名的列名与新列名一一对应地传入 rename() 方法。例如,我们有一个数据框,包含列 ‘old_name1’、’old_name2’、’old_name3’,我们想将它们一次性更名为 ‘new_name1’、’new_name2’、’new_name3’:
data = {'old_name1': [1, 2, 3], 'old_name2': [4, 5, 6], 'old_name3': [7, 8, 9]}
df = pd.DataFrame(data)
print(df)
运行上述代码,得到的输出为:
old_name1 old_name2 old_name3
0 1 4 7
1 2 5 8
2 3 6 9
我们可以这样操作:
df = df.rename(columns={'old_name1': 'new_name1', 'old_name2': 'new_name2', 'old_name3': 'new_name3'})
print(df)
运行上述代码,得到的输出为:
new_name1 new_name2 new_name3
0 1 4 7
1 2 5 8
2 3 6 9
总结
通过本文的介绍和案例分析,相信读者对 pandas 中的列更名操作有了更深入的了解。使用 rename() 方法可以快速简便地对数据框中的列名进行更改,提高了数据处理的效率。读者可以根据实际需求灵活运用列更名操作,提高数据处理的效率和准确性。