Pandas Apply函数在列上创建多个新列的方法

Pandas Apply函数在列上创建多个新列的方法

在本文中,我们将介绍如何使用Pandas Apply函数在列上创建多个新列。

要在列上创建新列,我们可以使用Pandas Apply函数。Apply函数可以应用于列,并使用自定义函数来创建新列。下面是一个示例,该示例说明如何使用Pandas Apply函数在列上创建新列:

import pandas as pd

# 创建一个包含名字、年龄和出生日期的Dataframe
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'age': [25, 30, 45, 22, 35],
    'birthday': ['1995-10-01', '1990-05-15', '1975-12-25', '1998-02-10', '1985-09-20']
})

# 定义一个函数,该函数会根据年龄和出生日期计算天数
def calculate_days(age, birthday):
    today = pd.to_datetime('today')
    birthdate = pd.to_datetime(birthday)
    days = (today - birthdate).days
    return days

# 使用Pandas Apply函数将新列添加到Dataframe中
df['days_since_birth'] = df.apply(lambda row: calculate_days(row['age'], row['birthday']), axis=1)

# 打印出Dataframe
print(df)
Python

上面的示例创建了一个包含名字、年龄和出生日期的Dataframe。然后,定义一个函数来计算自出生以来的天数。最后,使用Pandas Apply函数将新列添加到Dataframe中。

阅读更多:Pandas 教程

使用字典映射创建多个新列

除了在列上使用函数来创建新列外,我们还可以使用字典映射一次创建多个新列。下面是一个示例,该示例演示了如何在Dataframe中使用字典映射创建多个新列。假设我们有一个包含城市名称的Dataframe,我们想根据城市名称创建新的状态和省份列:

import pandas as pd

# 创建一个包含城市名称的Dataframe
df = pd.DataFrame({
    'city': ['New York', 'Boston', 'San Francisco'],
})

# 定义一个字典映射,该字典将每个城市映射到其对应的状态和省份
state_province_map = {
    'New York': ('New York', 'New York'),
    'Boston': ('Massachusetts', 'Massachusetts'),
    'San Francisco': ('California', 'California')
}

# 使用Pandas Apply函数和zip函数创建新的状态和省份列
df['state'], df['province'] = zip(*df['city'].map(state_province_map))

# 打印出Dataframe
print(df)
Python

上面的示例创建了一个包含城市名称的Dataframe。然后,定义了一个字典映射,该字典将每个城市映射到其对应的州和省份。最后,使用Pandas Apply函数和zip函数将新的状态和省份列添加到Dataframe中。

总结

本文介绍了如何使用Pandas Apply函数在列上创建多个新列。我们可以使用自定义函数或者字典映射来创建新的列。使用这些方法,我们可以快速地在Dataframe中创建多个新列。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册