Pandas 通过位置重命名列名
在数据清洗和数据分析的工作中,经常需要重命名Dataframe的列名,以方便更好的处理数据。Pandas提供了许多方法来重命名列名的方式,例如通过rename()方法、直接通过名称重命名等等。本文主要讲述如何通过位置重命名Pandas中列名。
阅读更多:Pandas 教程
Pandas 位置相关的方法
在重命名列名之前,我们先来了解一下Pandas中与位置有关的方法。
iloc[]: 根据行、列的位置,用.iloc()属性进行选取。行和列的位置从0开始计数。例如:df.iloc[0, :] ,表示选取第一行的所有列。loc[]: 根据行、列的label,用.loc()属性进行选取。行和列的label可以是行列的名称,也可以是布尔值或数组的索引。例如:df.loc[:, ‘A’],表示选取所有行的’A’列
通过位置重命名列名
在Dataframe中,重命名列名有两种方式:
- 通过重命名所有的列名
- 通过重命名一个或多个列名
通过重命名所有的列名
假设我们有以下的Dataframe:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)
# 结果如下:
# A B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
现在我们要通过位置将所有的列名重命名为0、1、2,可以使用columns属性。代码如下:
df.columns = [0, 1, 2]
print(df)
# 结果如下:
# 0 1 2
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
通过重命名一个或多个列名
假设我们有以下Dataframe:
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)
# 结果如下:
# A B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
现在我们要通过位置将’A’列名重命名为0,代码如下:
df.columns.values[0] = 0
print(df)
# 结果如下:
# 0 B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
我们还可以通过rename()方法来重命名,如下所示:
df.rename(columns={df.columns[1]: 'new_name'}, inplace=True)
print(df)
# 结果如下:
# A new_name C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
总结
通过以上的示例,我们可以发现在Pandas中通过位置重命名列名有两种方式:一种是通过重命名所有的列名,另一种是通过重命名一个或者多个列名。其中,使用rename()方法可以针对一个或多个列进行重命名,更加灵活方便。在实际使用中,可以根据需求灵活选择使用相应的方法。
极客教程