iT邦幫忙

0

jupyter notebook 指令問題

https://ithelp.ithome.com.tw/articles/10195183
我是在這篇文章看到
mask = chicago["Position Title"].str.lower().str.startswith("water") 的用法
我試著操作之後,發現找出來之表格,裏頭的值並沒有小寫,跟文章介紹的圖(下圖)一致。
https://ithelp.ithome.com.tw/upload/images/20190613/20114865WwgeBei9eb.png
而這道指令是指說找出小寫後會顯示出'water'的資料嗎?
因我原本以為找出來的資料,前頭也會跟著小寫。
感謝各位的回答!!!
另外再詢問一下 startswith()是需要字母小寫才能使用還是都可使用

ccutmis iT邦高手 8 級 ‧ 2019-06-13 10:56:25 檢舉
文章裡說
"接著來說明startswith()這個方法,它用來找出資料內是否開頭是括弧內的,我們一樣會將它轉成小寫再使用"

他把資料轉小寫是用來給startswith()作比對用的
把match的結果傳回串列mask再代入
chicago[mask].head() 把符合的列出來
列出來的部份沒有str.lower()自然不會變小寫
以上是我猜的 沒實際測試

1 個回答

1
dragonH
iT邦超人 6 級 ‧ 2019-06-13 10:18:54

他的意思是

mask = chicago["Position Title"].str.lower().str.startswith("water")

1 .

chicago["Position Title"]

找到 "Position Title" 這個欄位

2 .

str.lower()

把這欄位的值轉成小寫

3 .

startswith("water")

找到開頭為 "water" 的

他並沒有把轉換完的結果

覆寫到原本的資料呀

只是在定義用在 filter 的 mask 而已

如果要轉成小寫的話

可以試試看這樣

chicago["Position Title"] = chicago["Position Title"].str.lower()
chicago.head()

不過沒測試過就是

我要發表回答

立即登入回答