详解pandas.Series.map()(映射序列)函数使用方法

  • Post category:Python

pandas.Series.map()是Series对象的一个方法,它可以将Series对象中的每一个元素通过一个自定义函数或字典进行映射操作,并返回映射后的Series对象。

map()方法的使用方法

map()方法接受一个参数,可以是一个函数或字典。如果参数为函数,则该函数会接受Series对象的每一个元素作为输入值,并返回该元素映射后的值;如果参数为字典,则会使用字典的key和value来进行映射操作。

下面是map()方法的具体使用方法:

s = pd.Series([1, 2, 3, 4, 5])
# 将每个元素乘以2
s.map(lambda x: x*2)
# 或者使用函数来进行映射操作
def my_function(x):
    return x*2
s.map(my_function)

# 使用字典来映射元素
s.map({1: 'one', 2: 'two', 3: 'three', 4:'four', 5: 'five'})

实例1

下面是一个实例,展示了如何使用map()方法将性别数据进行映射操作:

import pandas as pd
data = {'name': ['John', 'Sarah', 'Tom', 'Mike', 'Catherine'], 'sex': ['M', 'F', 'M', 'M', 'F'], 'age': [25, 23, 30, 27, 29]}
df = pd.DataFrame(data)

# 将性别数据进行映射
sex_map = {'M': 'Male', 'F': 'Female'}
df['sex'] = df['sex'].map(sex_map)

# 查看映射后的结果
print(df)

输出结果:

        name     sex  age
0       John    Male   25
1      Sarah  Female   23
2        Tom    Male   30
3       Mike    Male   27
4  Catherine  Female   29

实例2

下面是一个实例,展示了如何使用map()方法将国际足球队的编号映射成国家名称:

import pandas as pd
data = {'team_id': ['BRA', 'GER', 'ESP', 'ARG', 'FRA'], 'score': [4, 3, 2, 1, 0]}
df = pd.DataFrame(data)

# 实现映射功能
team_map = {'BRA': 'Brazil', 'GER': 'Germany', 'ESP': 'Spain', 'ARG': 'Argentina', 'FRA': 'France'}
df['team_name'] = df['team_id'].map(team_map)

# 查看结果
print(df)

输出结果:

  team_id  score  team_name
0     BRA      4     Brazil
1     GER      3    Germany
2     ESP      2      Spain
3     ARG      1  Argentina
4     FRA      0     France

在这个实例中,使用了map()方法将国际足球队的编号映射成了国家名称,并创建了一个新的列team_name,最终达到了将编号转换为国家名称的目标。