问题的提出
如何改变列名以取代原来的列名?
下面是一个使用以下DataFrame的例子。
Col_A Col_B Col_C
0 1 3 5
1 2 4 6
你想把列名['Col_A', 'Col_B', 'Col_C'] 改为['a', 'b', 'c'] ,这样得到的DataFrame就是。
a b c
0 1 3 5
1 2 4 6
方法1:改变DataFrame.columns属性
给出一个字符串的列表,这些字符串是新的列名。要改变一个给定的DataFrame的原始列名,使用df.columns = <new column names> ,将新的列名分配给属性 df.columns 。
下面是你如何解决上面给出的例子。
>>> df.columns = ['a', 'b', 'c']
>>> df
a b c
0 1 3 5
1 2 4 6
为了便于复制和粘贴,这里是改变现有DataFrame的列名的完整源代码。
import pandas as pd
df = pd.DataFrame({'Col_A': [1, 2],
'Col_B': [3, 4],
'Col_C': [5, 6]})
print(df)
'''
Col_A Col_B Col_C
0 1 3 5
1 2 4 6
'''
df.columns = ['a', 'b', 'c']
print(df)
'''
a b c
0 1 3 5
1 2 4 6
'''
方法2:用DataFrame.rename()重命名特定属性
要重命名一个特定的列名子集{'old_1': 'new_1', 'old_2': 'new_2', ...} ,使用DataFrame.rename() 方法,并将一个带有{old : new} 映射的字典 传入该方法。
**df.rename(columns = {'old_1': 'new_1', 'old_2': 'new_2', ...}, inplace=True)**替换原来的DataFrame,或者**df = df.rename(columns = {'old_1': 'new_1', 'old_2': 'new_2', ...})**创建一个新的DataFrame并将结果分配给原来的变量df。
这里有一个实际的例子。
import pandas as pd
df = pd.DataFrame({'Col_A': [1, 2],
'Col_B': [3, 4],
'Col_C': [5, 6]})
print(df)
'''
Col_A Col_B Col_C
0 1 3 5
1 2 4 6
'''
df.rename(columns = {'Col_A': 'a', 'Col_C': 'c'}, inplace=True)
print(df)
'''
a Col_B c
0 1 3 5
1 2 4 6
'''
注意,rename() 方法也可以接受一个函数,按照函数的指定,以编程方式改变列名。
import pandas as pd
df = pd.DataFrame({'Col_A': [1, 2],
'Col_B': [3, 4],
'Col_C': [5, 6]})
print(df)
'''
Col_A Col_B Col_C
0 1 3 5
1 2 4 6
'''
df = df.rename(columns = lambda x: x[-1].lower())
print(df)
'''
a b c
0 1 3 5
1 2 4 6
'''
如果你需要复习一下lambda函数,请随时查看以下文章。
相关教程。 Python Lambda函数
方法3:使用DataFrame.set_axis()重新分配列头
使用 df[.](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_axis.html)set_axis(new_col_names, axis=1, inplace=True)来改变原始DataFrame的标题。如果你不想覆盖原始DataFrame,使用inplace=False ,在这种情况下,该方法将返回一个带有替换标题的新DataFrame副本。
import pandas as pd
df = pd.DataFrame({'Col_A': [1, 2],
'Col_B': [3, 4],
'Col_C': [5, 6]})
print(df)
'''
Col_A Col_B Col_C
0 1 3 5
1 2 4 6
'''
df.set_axis(['a', 'b', 'c'], axis=1, inplace=True)
print(df)
'''
a b c
0 1 3 5
1 2 4 6
'''
摘要
在一个给定的Pandas DataFrame中,有三种主要的方法来重命名列名['Col_A', 'Col_B', 'Col_C'] ,其中有['a', 'b', 'c'] 。
df.columns = ['a', 'b', 'c']df.rename(columns = {'Col_A': 'a', 'Col_C': 'c'}, inplace=True)df.set_axis(['a', 'b', 'c'], axis=1, inplace=True)
只有第二种方法适合部分替换列名。
The postHow to Rename Column Names in Pandas?first appeared onFinxter.