?在本教程中,我们将介绍在 Python 中重命名 pandas dataframe 中的列的各种方法。重命名或更改列的名称是最常见的数据整 理任务之一。如果您没有编程背景并且过去只使用 Excel 电子表格工作,您可能会觉得在 Python 中执行此操作并不容易,因为您 只需在单元格中键入您想要的内容即可轻松重命名 MS Excel 中的列。如果你是数据库背景的话,它类似于SQL中的ALIAS。在 Python?中,有一个流行的数据操作包,称为pandas,它简化了此类数据操作。?在 Pandas 中重命名列的方法在 Pand as 中,有两种简单的方法来重命名列的名称。第一步是安装pandas 包(如果尚未安装)。!pip show pandas您可以通 过在 Ipython 控制台中运行语句来检查您的计算机上是否安装了该软件包。如果没有安装,可以使用命令安装!pip install pandas。导入数据集进行练习为了导入数据集,我们使用read_csv( )pandas 包中的函数。import panda s as pddf = df = pd.read_csv("https://raw.githubusercontent.com/J ackyP/testing/master/datasets/nycflights.csv", usecols=range(1,17 ))要查看数据框中列的名称,请编写以下命令:df.columnsIndex([''year'', ''month'', ''day'', ''d ep_time'', ''dep_delay'', ''arr_time'', ''arr_delay'', ''carrier'', ''tailn um'', ''flight'', ''origin'', ''dest'', ''air_time'', ''distance'', ''hour'', ''minute''], dtype=''object'')方法一:rename() 函数假设您要将列名替换year为.?在下面的代码中, 它将创建一个名为的新数据框,具有新的列名称和相同的值。?yearsdf2df2 = df.rename(columns={''yea r'':''years''})如果您想在同一数据集中进行更改,df您可以尝试此选项inplace = Truedf.rename(col umns={''year'':''years''}, inplace = True)默认情况下设置了inplace = False ,因此 您需要指定此选项并将其标记为 True。如果要重命名多个列的名称,可以使用逗号分隔符指定其他列。df.rename(columns ={''year'':''years'', ''month'':''months'' }, inplace = True)方法二:datafram e.columns = [list]您还可以将新列名列表分配给 df.columns。请参阅下面的示例。我们在这里重命名年和月列。 df.columns = [''years'', ''months'', ''day'', ''dep_time'', ''dep_delay'', ''arr_time'', ''arr_delay'', ''carrier'', ''tailnum'', ''flight'', ''origin'' , ''dest'', ''air_time'', ''distance'', ''hour'', ''minute'']重命名具有模式的列假设您要重 命名?名称中包含下划线“_”的列。你想摆脱下划线df.columns = df.columns.str.replace(''_'', '''')新列名称如下。您可以观察到列名称中没有下划线。 Index([''year'', ''month'', ''day'', ''deptim e'', ''depdelay'', ''arrtime'', ''arrdelay'', ''carrier'', ''tailnum'', ''fli ght'', ''origin'', ''dest'', ''airtime'', ''distance'', ''hour'', ''minute''], dtype=''object'')按位置重命名列如果您想按位置更改列的名称(例如重命名第一列),可以使用下面的代码来完成。df.co lumns[0]指第一列。df.rename(columns={ df.columns[0]: "Col1" }, inplace = True) 按顺序重命名列如果您想按数字顺序更改列的名称,可以通过for 循环进行迭代来完成。df.columns=["C ol"+str(i) for i in range(1, 17)]在下面的代码中df.shape[1]返回没有。数据框中的列数。我 们需要在此处添加 1,因为range(1,17)返回 1、2、3 到 16(不包括 17)。df.columns=["Col"+s tr(i) for i in range(1, df.shape[1] + 1)]在列名中添加前缀/后缀add_prefix( ) 如果您想在现有列名之前或之后添加一些文本,您可以使用和add_suffix( )函数?来完成。df = df.add_prefix (''V_'')df = df.add_suffix(''_V'')如何访问名称中有空格的列出于演示目的,我们可以通过使用在某些列名中添加 空格df.columns = df.columns.str.replace(''_'' , '' '')。您可以使用语法 df["colu mnname"] 访问该列df["arr delay"]如何更改行名称使用索引选项,您可以重命名行(或索引)。在下面的代码中,我们 将数据帧 df 中的行名称 0 和 1 更改为“First”和“Second”。通过创建字典并将前一行名称作为键,将新行名称作为值。df.rename(index={0:''First'',1:''Second''}, inplace=True)? |
|