[問題] 使用upper()在Dataframe新增一欄資料

作者: miniwood (mini)   2017-12-26 12:29:34
Hi 最近在做練習題
有一題是要在Pandas Dataframe新增一欄資料 COUNTRY
欄位country的大寫
程式碼如下:
import pandas as pdcars = pd.read_csv('cars.csv', index_col = 0)
# Use.apply(str.upper)
cars["COUNTRY"] = cars["country"].apply(str.upper)
print(cars)
Output:
https://imgur.com/h7j7QFz
請問一下為什麼apply()裡是放str.upper
整個程式碼又沒有str的宣告
怎麼知道str 就是指每一個country
感謝解答~~~
作者: HenryLiKing (HenryLiKing)   2017-12-26 12:43:00
內建的喔~
作者: miniwood (mini)   2017-12-26 13:19:00
H大 是因為upper是String的method 所以apply裡的str.upper就會直接指向cars["country"]這一欄的string囉?
作者: tedwu2001   2017-12-26 16:42:00
看一下apply的定義: ref: http://bit.ly/2DfumGVapply的第一個參數是要被各個值叫用的函式怎麼知道是country是因為cars["country"]就已經先說了
作者: HenryLiKing (HenryLiKing)   2017-12-27 06:54:00
我的想法是 apply 很像 map 會對每個值都放進某個function處理吼傳回後
作者: tedwu2001   2017-12-27 09:56:00
如果是MapReduce的map那的確行為是一樣不過Series有map方法不過是做資料結合轉換之前看R它們也是用apply做函式叫用,感覺是資料圈慣例?ref: http://bit.ly/2gs9S7C

Links booklink

Contact Us: admin [ a t ] ucptt.com