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)
上面的示例创建了一个包含名字、年龄和出生日期的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)
上面的示例创建了一个包含城市名称的Dataframe。然后,定义了一个字典映射,该字典将每个城市映射到其对应的州和省份。最后,使用Pandas Apply函数和zip函数将新的状态和省份列添加到Dataframe中。
总结
本文介绍了如何使用Pandas Apply函数在列上创建多个新列。我们可以使用自定义函数或者字典映射来创建新的列。使用这些方法,我们可以快速地在Dataframe中创建多个新列。
极客教程