pandas数组(pandas Series)-(5)apply方法自定义函数

匿名 (未验证) 提交于 2019-12-03 00:37:01

有时候需要对 pandas Series 里的值进行一些操作,但是没有内置函数,这时候可以自己写一个函数,使用 pandas Series 的 apply 方法,可以对里面的每个值都调用这个函数,然后返回一个新的 Series 

import pandas as pd  s = pd.Series([1, 2, 3, 4, 5]) def add_one(x):     return x + 1  print s.apply(add_one)  # 结果: 0    2 1    3 2    4 3    5 4    6 dtype: int64

 

一个栗子:

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 ])

把以上Series里的名字从"Firstname Lastname" 转换成 "Lastname, FirstName"

可以使用apply方法:

def reverse_name(name):     name_array = name.split( )          new_name = {}, {}.format(name_array[1],name_array[0])     return new_name  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

 

原文:https://www.cnblogs.com/liulangmao/p/9231804.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!