Python Pandas数据框架中创建新列

Python Pandas数据框架中创建新列

Pandas 是 Python 中一个非常有用的数据分析库。DataFrame 是 Pandas 中最常用的数据类型之一,在数据分析的过程中我们经常需要对 DataFrame 中已有的数据进行加工处理。其中的一种处理方式是创建新的列,而这也是我们本篇文章的主要讨论内容。

更多Pandas相关文章,请阅读:Pandas 教程

DataFrame 介绍

在 Pandas 中,DataFrame 是将数据存储在二维表中的主要数据类型,它由三个基本组成部分构成:行、列和值。DataFrame 也可以看作是 Series 对象的容器,其中每一列的值类型可以不同。

在本文中,我们将学习如何在一个 Pandas 的 DataFrame 中创建新的列并存入数据。

创建新列

创建新列有多种不同的方法,将会在下面进行介绍。

方法一:直接指定列名后赋值

下面的代码演示如何直接指定列名后赋值:

import pandas as pd

data = {'name': ['John', 'Mary', 'Tom'],
        'age': [25, 26, 27],
        'country': ['US', 'CN', 'JP']}

df = pd.DataFrame(data)

df['gender'] = ['male', 'female', 'male']

在上面的代码中,我们创建了一个 DataFrame,并使用 df['gender'] 直接指定了新的列名。这时,DataFrame 中将出现一个名为 gender 的新列,它的值分别为 'male''female',和 'male'

方法二:使用 apply() 函数

下面的代码演示如何使用 apply() 函数创建新列:

import pandas as pd

data = {'name': ['John', 'Mary', 'Tom'],
        'age': [25, 26, 27],
        'country': ['US', 'CN', 'JP']}

df = pd.DataFrame(data)

df['name_length'] = df['name'].apply(lambda x: len(x))

在上面的代码中,我们使用 apply() 函数创建了新列 name_length,它的值为姓名 name 字符串的长度。这里使用的是 lambda 函数。我们也可以使用现成的函数。

方法三:使用 eval() 函数

下面的代码演示如何使用 eval() 函数创建新列:

import pandas as pd

data = {'name': ['John', 'Mary', 'Tom'],
        'age': [25, 26, 27],
        'country': ['US', 'CN', 'JP']}

df = pd.DataFrame(data)

df.eval('age_plus_10 = age + 10', inplace=True)

请注意,我们在这里通过参数 inplace=True 来保证在原地修改 DataFrame,age_plus_10 列的值是原始列值加 10 。其他表达式也可以被用作一个字符串参数。

方法四:通过 map() 函数创建

下面的代码演示如何使用 map() 函数创建新列:

import pandas as pd

data = {'name': ['John', 'Mary', 'Tom'],
        'age': [25, 26, 27],
        'country': ['US', 'CN', 'JP']}
df = pd.DataFrame(data)

grade_map = {'John': 'A', 'Mary': 'B', 'Tom': 'C'}
df['grade'] = df['name'].map(grade_map)

在代码中,我们在一个字典 grade_map 中增加姓名的 B 编码,然后使用 map() 函数将字典中的 value 映射到新列 grade 中。

结论

在 Pandas 的 DataFrame 中创建新列有多个方法,使用的方法取决于你的数据及情况。上面所介绍的这些方法均可以创建新列并将数据存储到 DataFrame 中,而这也是我们在数据分析和数据加工过程中最常需要的操作之一。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 教程