pandas基础:重命名pandas数据框架列

2022-11-16 13:16:13 浏览数 (2)

标签:Python与Excel,pandas

重命名pandas数据框架列有很多原因。例如,可能希望列名更具描述性,或者可能希望缩短名称。本文将介绍如何更改数据框架中的名称。

准备用于演示的数据框架

pandas库提供了一种从网页读取数据的便捷方式,因此我们将从百度百科——世界500强公司名单——加载一个表格。

图1

看起来总共有6列。下面单独列出了这个表的列。

图2

下面还提供了实际的百度百科页面的截图,以供参考。

图3

让我们对数据框架进行一些修改。首先,我们将删除一些不需要的列。我们不需要下列栏目:上午排名,所以我们删除它们。

图4

删除列后,我们可以检查df.head()以确认删除成功–现在只有5列。我们只剩下以下几列:

图5

我认为有些名字太啰嗦,所以将重命名以下名称:

最新排名->排名

总部所在国家->国家

就像pandas中的大多数内容一样,有几种方法可以重命名列。我们将了解一些方法,并讨论在不同场景下哪种方法更好。

rename()方法

该方法的可读性可能是三种方法中最好的。我们可以使用这种方法重命名索引(行)或列,我们需要告诉pandas我们正在更改什么(即列或行),这样就不会产生混淆。还需要在更改前后告诉pandas列名,这提高了可读性。

df1 = df.rename(columns = {'最新排名': '排名', '总部所在国家':'国家'})

如上所示,我们传入一个参数columns,它是一个包含前后列名的字典。我选择不覆盖原始数据框架(即默认情况下inplace=False),因为我希望保留原始数据框架以供其他演示使用。注意,我们只需要传入计划更改名称的列。

图6

set_axis()方法

此方法与rename()不同,因为set_axis()只需要最终的列名,但是必须为我们想要保留的每一列输入名称。

df2 = df.set_axis(['排名', '公司名称', '营业收入(百万美元)', '利润(百万美元)', '国家'], axis = 1)

图7

df.columns方法

df.columns返回给定数据框架的列名列表。

图8

通过将上述列名重新赋值给一个新的类似列表的对象,我们可以轻松更改这些列名:

图9

注意,此方法与set_axis()方法类似,因为我们需要为要保留的每一列传入名称。

何时使用何方法?

“关注细节”的读者可能已经知道了答案。

  • .rename()方法要求我们只传递需要更改的列
  • .set_axis()和df.columns要求我们传递所有列名

换句话说,使用:

  • .rename()当只需要更改几列时。例如,你的表可能有100列,而只更改其中的3列。唯一的缺点是,在名称更改之前,必须知道原始列名。
  • .set_axis()或df.columns,当你的表没有太多列时,因为必须为每一列指定一个新名称!但好处是,不需要事先知道原始列名,只需进行更改即可。

注:本文学习整理自pythoninoffice.com。

0 人点赞