標籤:方法 bar print col int fir nic lan pre
有時候需要對 pandas Series 裡的值進行一些操作,但是沒有內建函數,這時候可以自己寫一個函數,使用 pandas Series 的 apply 方法,可以對裡面的每個值都調用這個函數,然後返回一個新的 Series
import pandas as pds = pd.Series([1, 2, 3, 4, 5])def add_one(x): return x + 1print s.apply(add_one)# 結果:0 21 32 43 54 6dtype: 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_nameprint(names.apply(reverse_name))
0 Agassi, Andre1 Bonds, Barry2 Columbus, Christopher3 Defoe, Daniel4 Estevez, Emilio5 Flintstone, Fred6 Garbo, Greta7 Humbert, Humbert8 Ilych, Ivan9 Joyce, James10 Knightley, Keira11 Lane, Lois12 Myers, Mike13 Nolte, Nick14 Osbourne, Ozzy15 Picasso, Pablo16 Quirrell, Quirinus17 Ray, Rachael18 Sarandon, Susan19 Turner, Tina20 Urbina, Ugueth21 Vaughn, Vince22 Wilson, Woodrow23 Yamada, Yoji24 Zidane, Zinedinedtype: object
pandas數組(pandas Series)-(5)apply方法自訂函數