【小练习】Pandas Series apply()——交换first name 和 last name位置

本文介绍了一种使用Python Pandas库处理姓名序列的方法,通过定义函数实现将每个姓名中的firstname和lastname位置进行互换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有如下一个名字序列,需要交换first name 和 last name的位置。

names = pd.Series([

    'Andre Agassi',
    'Barry Bonds',
    'Christopher Columbus',
    'Daniel Defoe',
    'Emilio Estevez',
    'Fred Flintstone',
    'Greta Garbo',
    'Humbert Humbert',
    'Ivan Ilych',
    'James Joyce',
    'Keira Knightley',
    'Lois Lane',
    'Mike Myers',
    'Nick Nolte',
    'Ozzy Osbourne',
    'Pablo Picasso',
    'Quirinus Quirrell',
    'Rachael Ray',
    'Susan Sarandon',
    'Tina Turner',
    'Ugueth Urbina',
    'Vince Vaughn',
    'Woodrow Wilson',
    'Yoji Yamada',
    'Zinedine Zidane'

])

代码如下:

import pandas as pd
names = pd.Series([
    'Andre Agassi',
    'Barry Bonds',
    'Christopher Columbus',
    'Daniel Defoe',
    'Emilio Estevez',
    'Fred Flintstone',
    'Greta Garbo',
    'Humbert Humbert',
    'Ivan Ilych',
    'James Joyce',
    'Keira Knightley',
    'Lois Lane',
    'Mike Myers',
    'Nick Nolte',
    'Ozzy Osbourne',
    'Pablo Picasso',
    'Quirinus Quirrell',
    'Rachael Ray',
    'Susan Sarandon',
    'Tina Turner',
    'Ugueth Urbina',
    'Vince Vaughn',
    'Woodrow Wilson',
    'Yoji Yamada',
    'Zinedine Zidane'
])
def reverse_name(name):
    split_name = name.split(" ")
    first_name = split_name[0]
    last_name = split_name[1]

    return last_name + " " + first_name

或者

def reverse_names(name):
    split_name = name.split(" ") #str.split()返回的是list
    split_name.reverse() #in_place,没有返回值,直接在原list更改
    split_name_str = " ".join(split_name) #把list转成str
    return split_name_str

print(names.apply(reverse_name)) 

输出:

0             Agassi Andre
1              Bonds Barry
2     Columbus Christopher
3             Defoe Daniel
4           Estevez Emilio
5          Flintstone Fred
6              Garbo Greta
7          Humbert Humbert
8               Ilych Ivan
9              Joyce James
10         Knightley Keira
11               Lane Lois
12              Myers Mike
13              Nolte Nick
14           Osbourne Ozzy
15           Picasso Pablo
16       Quirrell Quirinus
17             Ray Rachael
18          Sarandon Susan
19             Turner Tina
20           Urbina Ugueth
21            Vaughn Vince
22          Wilson Woodrow
23             Yamada Yoji
24         Zidane Zinedine
dtype: object


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值