[问题] 使用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