有如下一个名字序列,需要交换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