Python Pandas 資料分析 - Google Play Store 資料集,實務演練 By 彭彭

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 264

  • @foggy1256
    @foggy1256 Рік тому +9

    不知不覺看了20部影片,沒看過教的這麼好的老師,很扎實的課程,老師好強~

    • @cwpeng-course
      @cwpeng-course  Рік тому +1

      謝謝你的回饋和肯定,希望對你有幫助 :)

  • @cantaloupe6817
    @cantaloupe6817 Рік тому +20

    不知道是正規表達式有改版過還是怎麼樣,如果在Installs把,和+拿掉的部分出錯 str.replace那段可以試著改成這樣:str.replace(r"[,+]","",regex=True)
    我自己是改了才成功

    • @cwpeng-course
      @cwpeng-course  Рік тому +3

      感謝你的分享,很有幫助 :)

    • @joybenz
      @joybenz Рік тому +3

      我今天也遇到這問題,但加上.regex=True也報錯.最后是拆成兩段並加上 errors="coerce" 才成功
      data["Installs"] = data["Installs"].str.replace("[,+]","",regex=True).replace("Free","",regex=True)
      data["Installs"] = pd.to_numeric(data["installs"],errors="coerce")
      @@cwpeng-course

    • @cwpeng-course
      @cwpeng-course  Рік тому

      @@joybenz 感謝分享,讚讚 ~

    • @mengmeng8383
      @mengmeng8383 Рік тому +5

      @@cwpeng-course
      今天實測發現不用加errors="coerce"也可以成功執行:
      data["Installs"] = data["Installs"].str.replace("[,+]","",regex=True).replace("Free","",regex=True)
      data["Installs"] = pd.to_numeric(data["installs"])
      或是也可以寫一起:
      data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]","",regex=True).replace("Free","",regex=True))
      但確定不加regex=True就會報錯

    • @cwpeng-course
      @cwpeng-course  Рік тому +3

      @@mengmeng8383 很棒的分享,Pandas 新的版本在參數預設值上面有變動,所以會和影片中有點落差,你這裡的經驗很棒 :)

  • @samwang1228
    @samwang1228 4 роки тому +7

    花了一個禮拜的時間終於看到這裡了,老師教的超棒,真的太厲害了! 尤其像是這種實務練習的影片總是能學到很多東西,希望老師能繼續出片,非常感謝!!!

    • @cwpeng-course
      @cwpeng-course  4 роки тому +2

      謝謝哪,希望大家都能夠開心持續的學習,我也會加油的 :)

  • @ellen1014
    @ellen1014 4 роки тому +14

    "簡直莫名其妙" XDDD, 默默追到第27部影片了, 謝謝老師用心製作! 受益良多!

    • @cwpeng-course
      @cwpeng-course  4 роки тому +1

      哈哈哈哈哈 XDDDD 謝謝你的回饋,也很高興對你有幫助 :))))))

  • @hsiuyi0804
    @hsiuyi0804 10 місяців тому +1

    真心感謝老師的存在~~~看您的教學影片會欲罷不能

    • @cwpeng-course
      @cwpeng-course  10 місяців тому +1

      謝謝你,很棒的回饋 :)

  • @kennedyokay
    @kennedyokay 3 роки тому +19

    謝謝老師的講解,
    分享一下我認為可能會產生誤會的地方:
    中間提到"取得前一百個應用程式平均",應該是指前100個最大值(nlargest(100)),
    若是要取得前100筆資料,要寫print("取得前一百個應用程式的平均", data["Rating"][0:100].mean())

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      讚讚,感謝你的分享哦 :)

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      請問應該是這樣嗎? 謝謝
      print("取100個最高評分應用程式的平均", data["Rating"].nlargest(100).mean()) # 取100個最高評分應用程式的平均 5.14
      print("取得前100個應用程式的平均", data["Rating"][0:100].mean()) # 取得前100個應用程式的平均 4.317171717171717

    • @archer885
      @archer885 Місяць тому

      有喔!老師在講那塊的時候我就直接按暫停,看留言區有沒有人能解答我這個疑惑,感謝你

    • @archer885
      @archer885 Місяць тому

      然後你的 data["Rating"][0:100].mean(),這個部分,100應該要改成99,不然是取得101筆資料

  • @qawsikol0000
    @qawsikol0000 4 роки тому +2

    謝謝彭彭老師有這種實務的影片,有學過前面的基礎其實不會有什麼太大的問題,印象深刻的是中間除錯的部分,而非一下子就貼上完整正確的程式。一步一步地去看錯誤在哪,要如何修正

    • @cwpeng-course
      @cwpeng-course  4 роки тому +1

      謝謝你的回饋,實務的影片確實就是想強調中間解決問題的過程 :)

    • @qawsikol0000
      @qawsikol0000 4 роки тому

      @@cwpeng-course 謝謝老師,這是我第三刷看完,再看一次發現,從實作中去應用字串的方式真的比單看書還來的有趣。一步步講解除錯的流程,最近有上其他的課看有些講師是先去解bug之後再回來說明錯誤,感覺上就有點不同

  • @rogersho9913
    @rogersho9913 3 роки тому +6

    老師真的教得很好,讓我學python也越來越有動力與熟練

  • @milkway731
    @milkway731 4 роки тому +7

    感謝老師!你教得好好。我很喜歡程式語言。之前都認為數學不好的人學不了程式。或許可能沒有那些數學好的人學得又快又好,但慢慢跟著你的課程,覺得自己有進步。真的很謝謝老師。我期望有一天能活用python :)
    一個數乙只有6分的愛程式小粉留

    • @cwpeng-course
      @cwpeng-course  4 роки тому +3

      哈哈哈,好哦,很喜歡你的回應 :)))
      我們可以一起繼續加油,未來可以變得很厲害 ~~~~~~~~~

    • @qawsikol0000
      @qawsikol0000 4 роки тому +5

      不會的,我數學也不好,但也很喜歡程式,現在也學了一段時間,數學的部分不用太擔心,還有教學的方法是否能讓第三人清楚(類似工廠SOP的概念)。
      我目前也看了好多教學,最後還是很喜歡彭彭老師的教學,沒有過多贅字,以及慢條斯理、步驟清楚,以及講話沒有像傳統學校老師那種口氣(有的真的越學越氣,不過後來想想很好笑),知道今天要學習的目標,也有實作練習,真的幫助很大。
      不要被那些話影響,做你喜歡的事情,有熱誠最重要

    • @milkway731
      @milkway731 4 роки тому +2

      布魯斯 謝謝你的鼓勵!莫忘這顆喜歡做這件事的初心

  • @HuangRay2213
    @HuangRay2213 3 роки тому +1

    謝謝彭彭老師講個很詳細清楚 意外發現錄到半夜兩點 工作辛苦了! 受益良多

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      謝謝你的回饋和意外的關心 :)))))

  • @williamlai2865
    @williamlai2865 Рік тому +2

    老師太厲害了 最近在上Google Advanced analytics certificate 講Pandas講的的不清不楚 但看完老師的Numpy and Pandas 影片很快就理解了!

    • @cwpeng-course
      @cwpeng-course  Рік тому

      謝謝你的回饋,也很高興對你有幫助 :)

  • @tung-lienchen1323
    @tung-lienchen1323 4 роки тому +2

    由淺入深, 講解清晰, 初學易懂; 謝謝!

  • @loveall23able
    @loveall23able 2 роки тому +3

    真的謝謝彭彭老師的課程,從下定決定轉職以來一直跟著老師的課程及其他書本的配合,目前慢慢熟悉了Python,也希望不久的將來也能轉職成功!
    原本途中一直遇到 regex will change from True to False 但在後面把regex=True 輸入在前面一個replace就解決了 (原本一直打在最後一個repalce XD)

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      謝謝你的學習歷程分享,也祝福你能順利轉職成功 :)

    • @好好笑-l2q
      @好好笑-l2q 2 роки тому

      可以請問一下這是為甚麼嗎?

    • @loveall23able
      @loveall23able 2 роки тому

      @@好好笑-l2q 因為有兩個replace 第一個replace沒有打regex = True的話 第二個也不會執行,所以必須先打在第一個replace後才能正常運作

    • @好好笑-l2q
      @好好笑-l2q 2 роки тому

      @@loveall23able 那位什麼要加regex = True?
      謝謝!

  • @chenchenhuang2221
    @chenchenhuang2221 10 місяців тому +1

    好喜歡實務演練,希望可以有多一點的示範❤

    • @cwpeng-course
      @cwpeng-course  10 місяців тому

      感謝你的回饋,會多多考慮的,謝謝 :)

  • @朱駿傑-k9z
    @朱駿傑-k9z 10 місяців тому +4

    我想請問一下彭彭大哥:
    import pandas as pd
    data = pd.read_csv("googleplaystore.csv")
    data["Installs"] = pd.to_numeric(data["Installs"].str.replace("[,+]",""))
    我照著打程式碼,但是replace那邊沒辦法正常運作,會跑出錯誤提示: ValueError: Unable to parse string "10,000+" at position 0
    可以給我一點修改的建議嗎? 謝謝

    • @cwpeng-course
      @cwpeng-course  10 місяців тому +10

      新版的 Pandas 在 replace 那邊,要加上一些額外的參數 regex=True 表示要用正則表達式去做比對。
      data["Installs"] = pd.to_numeric(data["Installs"].str.replace("[,+]","",regex=True))

    • @kaihsin1703
      @kaihsin1703 4 місяці тому +1

      以下是我遇到的狀況,搞很久......
      # 10,000+ 將,+換成空,仍有錯誤是使用正則要加上 regex=True
      data['Installs']=pd.to_numeric(data['Installs'].str.replace('[,+]',''))
      # 使用正則 regex=True
      # 仍有錯誤 ValueError: Unable to parse string "Free" at position 10472
      # 查詢該行原因內容 Free
      print(data['Installs'][10472])
      # 使用正則 regex=True10,000+ 將,+換成空,Free換成空
      data['Installs']=pd.to_numeric(data['Installs'].str.replace('[,+]','', regex=True).replace(['Free'],''))

  • @CLLiu-bc4xb
    @CLLiu-bc4xb 4 роки тому +4

    謝謝老師,最近把python系列都追完了,希望老師可以配合爬蟲多舉一些實務案例!!!!!

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      謝謝你的建議,我會盡量提供更多有用的教學 :)

  • @osbornshih8099
    @osbornshih8099 3 роки тому +5

    謝謝老師,我是python初學者,就這樣默默快把您的影片看完了,哈哈,實務演練真的好精彩
    中間有個地方我一直很在意,為什麼replace("[,+]","")當中可以用中括號這樣寫呢?

    • @cwpeng-course
      @cwpeng-course  3 роки тому +8

      希望看完影片之後對你會有幫助,也謝謝你的回饋 :)
      [,+] 這個東西叫做【正則表示式】,本身是個相當難以學好的東西,所以我這邊只是說他的意思就是把 , 和 + 這兩個符號取代成空白字串,相當於去除的意思。

    • @osbornshih8099
      @osbornshih8099 3 роки тому

      @@cwpeng-course謝謝老師的解答,那麼我再去找關於正則表示式的資料來研讀,謝謝

  • @janekuo575
    @janekuo575 2 роки тому +4

    好希望老師也在hahow開更細的爬蟲課程~~~🥺🥺🥺真的教得超好呀!!

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      謝謝你的回饋,我會考慮看看的 :)

  • @吳冠霆-j7l
    @吳冠霆-j7l 4 роки тому +1

    謝謝彭彭老師,您辛苦了。

  • @北極企鵝-c5v
    @北極企鵝-c5v 2 роки тому +1

    老師我想請問一下 我在print(data["Installs"][10472])時出現了這樣的錯誤:
    Exception has occurred: KeyError
    10472
    The above exception was the direct cause of the following exception:
    File "C:\Users\user\Desktop\python\pandas演練-google play store\google play store演練.py", line 21, in
    print(data["Installs"][10472])
    我有試其他的(例如:10471, 10474之類的) 都不會有這樣的問題,照常輸出他的下載量,那請問這是什麼錯誤呢,謝謝老師🙏🙏

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      很可能資料中的 10472 已經被移除,或沒有這筆資料了 ~

  • @kevin2622655
    @kevin2622655 4 роки тому +5

    data[Rating].nlargest(100)
    應該是取前100大的評分,不知道是不是我理解錯誤,我聽彭彭老師說前100個應用程式,都會認為只是排序上的0~100

  • @_bodysoso7964
    @_bodysoso7964 3 роки тому

    在跑平均數那邊的時候...跳出這個,摸索了好久,請老師 高手們解惑>< 感謝!!
    Traceback (most recent call last):
    File "D:\python practice\pandas-googleplay.py", line 11, in
    condition=data["Rating"]>5
    hod
    res_values = ops.comparison_op(lvalues, rvalues, op)
    File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\ops\array_ops.py", line 284, in comparison_op
    res_values = comp_method_OBJECT_ARRAY(op, lvalues, rvalues)
    File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\ops\array_ops.py", line 73, in comp_method_OBJECT_ARRAY
    result = libops.scalar_compare(x.ravel(), y, op)
    File "pandas\_libs\ops.pyx", line 107, in pandas._libs.ops.scalar_compare
    TypeError: '>' not supported between instances of 'str' and 'int'

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      data["Rating"] 裡頭的資料是字串的形式,所以無法用大於的符號去做比較運算。需要先想辦法把這個欄位的資料轉換成數字的形式才行。

    • @_bodysoso7964
      @_bodysoso7964 3 роки тому

      @@cwpeng-course 請問老師要怎做呢😭

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      @@_bodysoso7964 可以使用 to_numeric 這樣的方法。

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      請問您願意分享當初這段代碼嗎? 讓我學習錯誤在哪? 感恩。

  • @yuan-chinghsu4
    @yuan-chinghsu4 Рік тому +2

    老師您好:
    我在執行把字串轉成數字時,要先把+和,replace成""時
    Traceback (most recent call last):
    File "d:\shotry\python training\stock\pandas-googleplay.py", line 16, in
    data["Installs"]=pd.to_numeric(data["Installs"].str.replace(",+","").replace("Free",""))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\acer\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\tools
    umeric.py", line 217, in to_numeric
    values, new_mask = lib.maybe_convert_numeric( # type: ignore[call-overload] # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "pandas\_libs\lib.pyx", line 2322, in pandas._libs.lib.maybe_convert_numeric
    ValueError: Unable to parse string "10,000+" at position 0
    不知道為什麼會轉不過去?
    謝謝您!!

    • @天下午餐廳
      @天下午餐廳 Рік тому

      +1

    • @sleepydeepy526
      @sleepydeepy526 Рік тому

      +1

    • @cwpeng-course
      @cwpeng-course  Рік тому

      replace("[,+]","")

    • @yagnralph
      @yagnralph Рік тому

      ​@@cwpeng-course 彭彭老師您好
      我也有遇到這個問題我有加replace("[,+]","")
      但也一樣
      During handling of the above exception, another exception occurred:
      Traceback (most recent call last):
      File "06253.py", line 29, in
      data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]",""))
      File "/Users/ralphyang/Library/Python/3.8/lib/python/site-packages/pandas/core/tools/numeric.py", line 217, in to_numeric
      values, new_mask = lib.maybe_convert_numeric( # type: ignore[call-overload] # noqa
      File "pandas/_libs/lib.pyx", line 2322, in pandas._libs.lib.maybe_convert_numeric
      ValueError: Unable to parse string "10,000+" at position 0

    • @yagnralph
      @yagnralph Рік тому

      老師 已解決 參考你在留言中所說的正則表達式data["Installs"]=pd.to_numeric(data["Installs"].str.replace(r"[,+]","",regex=True))

  • @iamkiera7209
    @iamkiera7209 3 роки тому +1

    老師您好,想請問一下 如果我是用絕對路徑,這樣打有什麼問題嗎,一直沒辦法讀出來><
    import pandas as pd
    data=pd.read_csv(r"‪C:\Users\chans\Desktop\googleplaystore.csv")
    print(data)

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      你可以試著把 \ 改成 / 看看,或者仔細檢查你的檔案路徑是否有正確 ~

    • @湯晴羽
      @湯晴羽 Рік тому

      @@cwpeng-course 老師,我也有一樣的問題,照您說的改成/後,還是讀不出來,請問該怎麼解決呢?謝謝老師!!

  • @ellen1014
    @ellen1014 4 роки тому +1

    老師深夜上傳影片耶...辛苦了 謝謝老師

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      深夜工作效率高 XDDD 只是第二天早上會睡不飽 @@a

  • @DanielHuang1206
    @DanielHuang1206 Рік тому +1

    謝謝老師的教學,我有碰到一個問題就是,時間的資料是顯示2022年1月,我想要把她分割成2022 及1,不要有中文字,我用這個方式data["時間"].str.split("年",expand=True),但是沒有成功,想問一下,失敗的原因是因為中文的關係嗎?

    • @cwpeng-course
      @cwpeng-course  Рік тому

      沒有程式碼和錯誤訊息很難精準的判斷。但估計不會是因為中文的關係,現代的語言通常都可以很好的支援多國語言,包括中文。

  • @林詩璇-o6y
    @林詩璇-o6y 3 роки тому +2

    print(data["Rating"])時 最後出現dtype:object
    要如何轉換變成float64 才能使後面運算順利產出? 謝謝~

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      可以參考影片中的做法,把資料先轉換成數字型態,例如使用 to_numeric

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      print('----------------------------------------------')
      dataRating = pd.read_csv('googleplaystore.csv')
      dataRating['Rating'] = pd.to_numeric(dataRating['Rating'])
      print(dataRating['Rating'])
      print(type(dataRating['Rating'])) #
      print(dataRating['Rating'].dtype) # float64
      print('----------------------------------------------')
      ----------------------------------------------
      0 4.1
      1 3.9
      2 4.7
      3 4.5
      4 4.3
      ...
      10836 4.5
      10837 5.0
      10838 NaN
      10839 4.5
      10840 4.5
      Name: Rating, Length: 10841, dtype: float64
      float64
      ----------------------------------------------

  • @張小照
    @張小照 2 місяці тому

    看完29集啦~~灑花

  • @yitingliu384
    @yitingliu384 4 роки тому +1

    老師說的很清楚
    不知有沒有機會能看到有關圖像辨識相關教學?

    • @cwpeng-course
      @cwpeng-course  4 роки тому +2

      謝謝你哦 :)
      暫時不會呦,但我確實有興致,估計大概半年到一年後會有機會提供相關的教學 ~

    • @yitingliu384
      @yitingliu384 4 роки тому

      @@cwpeng-course 希望不會太久。。

  • @zhijwu4624
    @zhijwu4624 Рік тому +1

    想請問取代掉Free 為"",代表那個欄位會變成空值嗎,這樣計算平均數是否會計算到?

    • @cwpeng-course
      @cwpeng-course  Рік тому +1

      變為空字串,計算平均數時不會算到。

  • @tttNioh2
    @tttNioh2 Рік тому +1

    請問一下讀取 Google Play 應用程式的 CSV 資料,這個CSV是會定期更新嗎? 該如何拿到最新的資訊? 3Q

    • @cwpeng-course
      @cwpeng-course  Рік тому

      不會定期更新哦,那個是從 kaggle 這個網站上一次性載下來的資料。

  • @黃紹維-d2i
    @黃紹維-d2i 3 роки тому +1

    老師好,請問我在使用Series.mean()跟median()的功能時,顯示資料型態為字串,因此無法執行,但是老師影片中沒有出現這個問題,請問有可能是什麼原因呢?

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      因為我操作的資料是數字,如果不是數字會先轉成數字。不太確定你的細節,但主要就是因為你操作的資料是字串,無法計算平均數和中位數。

    • @_bodysoso7964
      @_bodysoso7964 3 роки тому

      +1 請問後來怎麼解決呢

  • @gogo_lun
    @gogo_lun 3 роки тому

    彭彭老師您好:
    看完了到目前為止的影片收穫滿滿,非常謝謝彭彭老師!
    但這部影片看到這段程式碼時心中有個疑問
    data["Installs"] = pd.to_numeric(data["Installs"].str.replace("[,+]","").replace("Free",""))
    原來在str.replace('[,+]','')後面接續打上其他replace原來是可以的嗎?
    我可以把這樣的寫法理解成『對data["Installs"]這個Series作完replace之後,接續作下一個replace』嗎?
    另外一個疑問是第二個replace前面為什麼str可加可不加,我自己練習寫時有加str結果也跟您沒加str一樣,所以就產生了這樣的疑問

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      你的理解是正確的哦,也確實如你測試的結果一樣,無論有沒有加 str 都還是可以用 replace 來做取代,因為 replace 這個方法同時定義在 Series 和底下的 str 屬性之中。

    • @gogo_lun
      @gogo_lun 3 роки тому +1

      @@cwpeng-course 謝謝老師!!

  • @yizeng8517
    @yizeng8517 4 роки тому +1

    收获很多太感谢了,有视频讲这个数据集是怎么爬下来的吗,或者有爬虫的代码吗

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      很高兴对你有帮助呦,目前没有耶,不知道提供者是怎么爬取到这些资料的 XDDD

  • @Yeah-jz8hw
    @Yeah-jz8hw 3 роки тому +1

    請問老師,透過關鍵字篩選出要的App的時候,要怎麼進一步取出安裝次數前3名(就是要安裝次數前3的App名稱)?因為假如我是用戶應該會希望出現的是最熱門最多人用的東西哈哈哈

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      你可以透過排序的功能,然後再取前面的部份。排序可以搜尋 pandas sort_values 關鍵字 ~

  • @許哲嘉-x6k
    @許哲嘉-x6k 4 роки тому +1

    老師可以請問一下為什麼資料裡有NaN還可以相加

    • @cwpeng-course
      @cwpeng-course  4 роки тому +3

      主要是 Pandas 提供的功能可以幫助我們忽略這些無效的資料之後去做運算哦 ~

  • @洪宇樞-m9r
    @洪宇樞-m9r 2 роки тому

    您好:我按照您的code打輸入資料,卻沒辦法輸入,檔案都在同一個資料夾拼字也沒錯,請問是甚麼問題呢?
    Traceback (most recent call last):
    File "pandas\_libs\parsers.pyx", line 1083, in pandas._libs.parsers.TextReader._convert_tokens
    File "pandas\_libs\parsers.pyx", line 1233, in pandas._libs.parsers.TextReader._convert_with_dtype
    File "pandas\_libs\parsers.pyx", line 1246, in pandas._libs.parsers.TextReader._string_convert
    File "pandas\_libs\parsers.pyx", line 1444, in pandas._libs.parsers._string_box_utf8
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe5 in position 3: invalid continuation byte

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      確認一下你載入的檔案使用的編碼是 utf-8

  • @destrall9775
    @destrall9775 Рік тому +1

    老師不好意思照著跑程式都有跑出來但是數量卻跟老師顯示的不一樣 這樣正常嗎

  • @阮昱眾
    @阮昱眾 4 роки тому +1

    老師超棒的!!

  • @frason2
    @frason2 4 роки тому +1

    想請教彭彭:
    Pandas 的contains功能有沒有辦法做到避開關鍵字呢?
    例如說包含game的名稱抓出來後 想避開kid/kids關鍵字
    有沒有什麼方法能做到呢?

    • @沈建志-h9v
      @沈建志-h9v 4 роки тому

      medium.com/@PatHuang/%E5%88%9D%E5%AD%B8python%E6%89%8B%E8%A8%98-1-%E8%B3%87%E6%96%99%E5%89%8D%E8%99%95%E7%90%86-%E7%9B%B8%E5%B0%8D-%E7%B5%95%E5%B0%8D%E8%B7%AF%E5%BE%91-%E8%B3%87%E6%96%99%E9%81%B8%E5%8F%96-1a081fc38e56
      --------------- 有可能是 "googleplaystore.csv" 沒有在同一個資料夾(程式) ------------

    • @cwpeng-course
      @cwpeng-course  4 роки тому +4

      感謝 @沈建志 的回應。
      可以考慮用邏輯運算組合,contains("game") and not contains("kid") 類似這樣的邏輯。

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      data = pd.read_csv('googleplaystore.csv')
      keyword = input('輸入關鍵字:')
      #condition = data['App'].str.contains(keyword, case=False) # case=False 忽略大小寫,這樣可以搜尋更多
      condition = data['App'].str.contains(keyword, case=False) &~ data['App'].str.contains("Book", case=False)
      print(data[condition]['App']) # print(data[condition])
      print('包含關鍵字的應用程式數量', data[condition].shape[0])
      '''
      在Pandas中,& 代表按位且(AND),~ 代表按位非(NOT)。這些符號可以用來組合多個條件來進行篩選操作。
      這裡是這些符號的解釋:
      &:按位且運算符,用於組合兩個條件,當兩個條件同時為True時,結果為True。
      ~:按位非運算符,用於對條件進行取反操作,將True轉換為False,將False轉換為True。
      '''

  • @nightsky1212
    @nightsky1212 4 роки тому +1

    老師 我想請問 要怎麼判斷什麼時候改用哪種括號呢
    我的意思是就像查字典或是看字元編號的時候
    而不是有序列表或是集合

    • @cwpeng-course
      @cwpeng-course  4 роки тому +2

      Pandas 有自己的語法,所以我們會學習 Series 和 DataFrame 的每個基礎操作,再根據這些基礎操作去決定該用哪種括號 / 語法

  • @堯可可
    @堯可可 4 роки тому +4

    希望可以介紹神經網路

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      好哦,謝謝你的建議,我會盡量安排看看 :))))))

    • @godeating9288
      @godeating9288 4 роки тому

      @@cwpeng-course 麻煩老師了 我也非常想學些神經網路 因為老師教得非常清楚

  • @tsai94520
    @tsai94520 4 роки тому +2

    有pandas就要必刷20次哈哈

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      哈哈哈哈 XDDDD

    • @tsai94520
      @tsai94520 4 роки тому

      @@cwpeng-course 刷了兩次後學生就會問,老師老師那要怎麼打包這些寫好的東西.哈哈!!

  • @我看不見
    @我看不見 3 роки тому

    老師您好 我的問題如下:
    1.我已將 xlsx檔案 選擇 utf-8 編碼轉為 csv檔
    2.但我的csv檔案內容有中文 (直接打開沒問題 但在vs code裡面顯示中文會變亂碼?!)
    請問該如何讓"亂碼內容"變成可以用"中文"來操作的檔案呢?
    謝謝~

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      如果沒有誤會你的意思的話,打開檔案文件後,你可以在 VS Code 的下方看到一個編碼的選項,把那個編碼的選項改成 UTF-8 應該就可以 ~

  • @TsuiWaiKeung
    @TsuiWaiKeung 3 роки тому +2

    你是前100平均數出問題,但問題數據在10472.如果用 data["Rating"][0:101].mean() 會不會更加好?
    我一路都跟老師學習的.

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      看起來也蠻好的,感謝你的分享 :)

    • @mrnobody621
      @mrnobody621 3 роки тому

      大大真的蠻厲害的,想到用切割資料的方法。不過再稍微修正一下就更完美了。
      data["Rating"][0]裡的索引0是第1筆資料,第100筆資料應該是data["Rating"][99],
      所以我們這邊選取範圍應該是要 data["Rating"][0:100]。
      如果是要取前100筆資料確實是要用大大的方法,如果是取全部資料的100個最值
      就要用老師提供的nlargest

    • @mrnobody621
      @mrnobody621 3 роки тому

      取全部資料的100個最大值,後面少打一個大了...哈哈

  • @huangg09
    @huangg09 3 роки тому

    想請教老師或是這裡的高手,為什麼在做資料清洗時(Rating這個column),原本設定好條件
    condition = data["Rating"] < 5
    data = data[condition]
    卻不只刪掉那一筆Rating = 19.0的資料,而是連所有Rating == nan的資料都刪除掉了呢?
    另外想了解nan的type是int?str?還是沒有type,發現在處理nan這一塊有些疑惑,不想刪除時卻被跟著刪除

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      NaN 是 Float 型態,就是沒有資料的意思,單純做比較運算的時候會被判定成比 5 小,所以被篩選掉。

  • @SileasBlackburn
    @SileasBlackburn 4 дні тому

    跟着朋友一块交易USDT因为点事闹掰了 她给了我个OKX钱包的码 [pride]-[pole]-[obtain]-[together]-[second]-[when]-[future]-[mask]-[review]-[nature]-[potato]-[bulb] 说让我把剩下的USDT提出来 这是什么啊 怎么搞啊 求各位告知下

  • @mrjackyad
    @mrjackyad 4 роки тому +3

    老師知識是有價的,請多作一些python AI大數據分析 課程
    讓會員獨享

    • @cwpeng-course
      @cwpeng-course  4 роки тому +1

      好哦,謝謝你的建議,我會考慮看看的 :)

  • @mandychen3304
    @mandychen3304 3 роки тому

    老師好, 想請教若是想對youtub影片作分析, 在初步收集資料處可以怎麼做才可以有像googleplaystore這個csv檔呢?或是說是否可以用BeautifulSoup收集到基本資料呢?
    再請老師解惑了, 謝謝老師!!

    • @cwpeng-course
      @cwpeng-course  3 роки тому +2

      你可以試著去串接 Google UA-cam Data API 來取得資料,用爬蟲是可以,但是會很辛苦 ~

  • @sherlock2972
    @sherlock2972 3 роки тому

    Dear 彭彭 ~ 請教一下 ~ 以下是程式碼 ~ 但不知道為何會報錯誤 ~ 感謝您
    import pandas as pd
    #讀取資料
    data = pd.read_csv("googleplaystore.csv")
    #觀察資料
    print("資料數量" , data.shape)
    print("資料欄位" , data.columns)
    print("=============")
    #分析資料 : 評分的各種統計數據
    condition = data["Rating"]

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      Rating 資料的型態是字串,所以不能直接比較大小,要先把字串轉換成數字。

    • @dannybot520
      @dannybot520 3 роки тому

      奇怪~~我看這些程式碼好像都沒錯,然後將它全複製執行~跑的出來阿
      老師示範的範例也是跟這個一模一樣阿
      Rating是字數型態? 後面的Installs 才是字串型態需要轉換?

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      data = pd.read_csv("googleplaystore.csv")
      #觀察資料
      print("資料數量" , data.shape)
      print("資料欄位" , data.columns)
      print("=============")
      #分析資料 : 評分的各種統計數據
      condition = data["Rating"]

  • @類固醇戰士
    @類固醇戰士 Рік тому +1

    老師您好,我發現我在使用data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]",""))也沒有辦法把10,000+裡面非數字的部分變成空字串,而出現的錯誤依然如
    File "pandas\_libs\lib.pyx", line 2280, in pandas._libs.lib.maybe_convert_numeric
    ValueError: Unable to parse string "10,000+"
    During handling of the above exception, another exception occurred:
    Traceback (most recent call last):
    File "G:\python training\backup\2929.py", line 23, in
    data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]",""))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\User\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\tools
    umeric.py", line 217, in to_numeric
    values ,new_mask= lib.maybe_convert_numeric( # type: ignore[call-overload] # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "pandas\_libs\lib.pyx", line 2322, in pandas._libs.lib.maybe_convert_numeric
    ValueError: Unable to parse string "10,000+" at position 0
    但當我用
    data["Installs"]=pd.to_numeric(data["Installs"].str.replace("+","").str.replace(",","").replace("Free",""))
    一切才變得跟您一樣,所以想知道是哪部分出了問題嗎? 變成說好像得分開來寫而且第二個還一定得再寫一次str:(

    • @cwpeng-course
      @cwpeng-course  Рік тому

      可能新版本有點變化,你試著改寫成以下程式看看,概念上就是要使用正則表達式作比對:
      data["Installs"]=pd.to_numeric(data["Installs"].str.replace(r"[,+]","",regex=True))
      不過你後面那個解決方案也沒有不行,就是多了點程式碼 :)

    • @billionwan
      @billionwan 8 місяців тому

      我遇到相同問題(python3.11.8)後來發覺新版似乎不支持replace("[,+]",""), 另外,似乎必須在每一個replace()前加上str. 我後來成功的用法如下:
      data["Installs"]=pd.to.numeric(data["Installs"].str.replace(",","").str.replace("+","").str.replace("Free",""))

  • @Liu_0918
    @Liu_0918 3 роки тому

    老師,我打這串程式時data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]","").replace("Free",""))
    為什麼會出現FutureWarning: The default value of regex will change from True to False in a future version

    • @tarrycy4741
      @tarrycy4741 3 роки тому +5

      加上,regex=True

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      感謝 @Tarry CY 的補充 :)

    • @t2roioaui
      @t2roioaui 2 роки тому

      @@tarrycy4741 您好遇到了相同的問題,請問是要加在什麼位置?

    • @bobsolar
      @bobsolar 2 роки тому +1

      @@t2roioaui replace('[,+]','',regex=True).replace('Free','',regex=True)這樣就可以成功執行

  • @yangwang2617
    @yangwang2617 Рік тому +1

    用空字串代替逗號加號那步驟我的會出錯欸⋯

    • @cwpeng-course
      @cwpeng-course  Рік тому

      要看看實際的程式或錯誤訊息才有辦法判斷可能的原因哦 ~

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      請問有您當初代碼嗎? 讓小弟學習錯誤在哪? 感恩。

  • @samwang1228
    @samwang1228 4 роки тому

    請問老師我想要找尋googleplaystore的最大容量app(在Size那裡) 可是他的type是object且最後面有kB MB等 那我應該怎麼做呢? 本來是想把MB轉成000可是他有些數據又是有小數點的

    • @cwpeng-course
      @cwpeng-course  4 роки тому +1

      比較複雜的字串處理,例如你提到的這個:要先去掉小數點,然後把 kb 和 mb 分別換成對應的 0,再轉成數字後去做排列。
      我們會考慮用迴圈把資料一個一個撈出來做細節的處理,而不是套用特定的函式來直接解決,這部份可能得另外錄一部教學才行惹 @@a

  • @陳景柔
    @陳景柔 4 роки тому

    收穫良多 謝謝老師

  • @蔡廷庠-s3d
    @蔡廷庠-s3d 3 роки тому

    想詢問一下 如果csv檔案中有中文字要求用utf-8編譯 要如何操作
    (剛剛嘗試在檔案中搜尋中文字,測試時卻突然正常了XD,以下是bug資訊
    'utf-8' codec can't decode byte 0xe5 in position 40760: invalid continuation byte

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      可以試試使用 read_csv(檔案路徑, encoding="utf-8") 這樣去讀取看看 ~

    • @howshy
      @howshy 4 місяці тому

      你解決了嗎? 我也遇到一樣的問題

  • @吳承諭-d5d
    @吳承諭-d5d 3 роки тому

    請問老師在把資料轉成數字的步驟,我跟您打的一樣但出來的dtype=int64而不是影片的float64,length:9366影片為10841 這是為甚麼呢?

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      或許資料有些變化,或者你的 Pandas 的版本已經和影片錄製時有差異,你可以自己確認程式結果和手上拿到的資料是否有正確對應哦 ~

  • @蔡文瑞-l2k
    @蔡文瑞-l2k 3 роки тому

    澎澎老師您好,我從證交所網站下載股票交易的CSV檔,不知為何用print印出資料時,中文字變亂碼,請問這要如何處理.

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      在使用 read_csv 的時候加上 encoding 參數,例如:
      read_csv(encoding="utf-8") 或者可能要換成 big5 試試看

    • @蔡文瑞-l2k
      @蔡文瑞-l2k 3 роки тому +2

      @@cwpeng-course 用big5可以,謝謝老師.

  • @x801124
    @x801124 2 роки тому

    請問老師
    data["Installs"]=pd.to_numeric(data["Installs"].str.replace("[,+]","").replace("Free",""))
    這行程式碼有順序之分嗎?
    因為假設取代是A取代成B然後B又取代成C
    那電腦要怎麼分辨順序呢?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      有順序的概念哦,這行程式會先把 , 和 + 變成空字串,然後再把 Free 變成空字串。

    • @x801124
      @x801124 2 роки тому

      @@cwpeng-course 謝謝老師喔。所以程式執行通常還是由左至右囉?

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      @@x801124 不是,要理解每個指令的意義才能精準的判定。例如等號的右方就會先執行,執行完才存放進前面的變數或欄位中。

    • @x801124
      @x801124 2 роки тому

      @@cwpeng-course 瞭解,謝謝老師,也希望老師可以多多出python相關影片喔

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      data['Installs']=pd.to_numeric(data['Installs'].str.replace('[,+]','', regex=True).replace(['Free'],''))
      在Python中,函數和方法的調用順序是從左到右的,即從左到右依次應用每個方法。因此,在您的程式碼中,先將[',+']替換成空字符串,然後再將['Free']替換成空字符串。
      在執行這行程式碼時,Python會先進行最左邊的replace操作,然後才進行右邊的replace操作。因此,首先將逗號和加號字符替換為空字符串,然後將'Free'字符串替換為空字符串。這樣的順序是由於Python函數和方法的調用方式,並且保證了順序如您所期望的那樣

  • @wei5146
    @wei5146 2 роки тому

    請問老師有開任何python的線上課程嗎? 想學更進階的!!
    還有想請問一下影片中的googleplay資料是屬於甚麼資料,要去哪裡抓這種資料呢

    • @cwpeng-course
      @cwpeng-course  2 роки тому

      可以參考看看我們的會員教學哦:
      ua-cam.com/play/UUMOguZS-y7codLSt6vpkVdnKg.html
      那個資料是從 Kaggle 這個網站來的。

  • @豐乾林
    @豐乾林 4 роки тому

    請問彭彭老師,我在前三行程式要讀進csv資料,就失敗讀不進來了,程序都照影片中的步驟,還是不行,該如何解決,請老師指導,謝謝!

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      確認看看資料檔案有和程式放在同一個資料夾,以及檔案名稱和程式中寫的檔案名稱是一樣的 ~

  • @oolagger
    @oolagger 4 роки тому

    請問如果將前十下載用 .largest(10) 後,需要補上哪個條件才能出現這十個的 APP名字啊?

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      可能沒有很簡單哦,搭配前面幾個章節介紹過的資料篩選邏輯來仔細處理看看 ~

  • @jasonbourne829
    @jasonbourne829 3 роки тому

    彭彭老师什么时候讲机器学习呢?

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      我尽量规划看看喽,时间真的不太多呀 QQ

  • @brucehuang6253
    @brucehuang6253 4 роки тому

    谢谢老师

  • @StudentPSE
    @StudentPSE 4 роки тому

    先讚再說!

  • @黃昱懷
    @黃昱懷 3 роки тому

    希望老師可以教 python編輯excel檔案

    • @hongvent5955
      @hongvent5955 3 роки тому

      xlsxwriter 跟pandas

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      感謝 @Hong Vent 的分享 :) 關於教學,我會考慮看看的 ~

  • @keler50213
    @keler50213 2 роки тому

    想請問老師 28:12那邊,函數是用size 而非shape的話出來的數字為何不同?

    • @cwpeng-course
      @cwpeng-course  2 роки тому +1

      size 是指所有的資料欄位總數,shape 是列出 row 和 column

  • @陳冠宇-q6d
    @陳冠宇-q6d 4 роки тому

    老師我想請問這些事情excel也可以處理 用python是因為跑比較快嗎還是有別的特別之處呢

    • @cwpeng-course
      @cwpeng-course  4 роки тому +3

      更彈性,更自動化,也更可以和別的系統整合哦 ~

    • @陳冠宇-q6d
      @陳冠宇-q6d 4 роки тому

      彭彭的課程 老師您好 我對數據分析這塊很有興趣 有想考研究所 請問您建議什麼所呢 目前只有看到交大有數據所或是您建議上資策會呢

  • @Ts2pc
    @Ts2pc 2 роки тому

    Excellent!

  • @白飯魚-k7w
    @白飯魚-k7w 4 роки тому

    感謝老師!!

  • @jhxu8071
    @jhxu8071 4 роки тому

    彭老师pd.read_csv怎样理解?谢谢

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      讀取一個 csv 格式的檔案,基本語法是:pd.read_csv(檔案路徑)

  • @gooo4890
    @gooo4890 4 роки тому

    請問一下老師 一直很好奇是怎麼一次在很多行前面一次加#

    • @ooewu
      @ooewu 4 роки тому

      標起來 後 按 ctrl + /

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      感謝 @ooe wu 的回應,就是這樣哦 ~

  • @gml780
    @gml780 4 роки тому

    大佬,python与(机械)有关的库都有哪些

    • @cwpeng-course
      @cwpeng-course  4 роки тому

      如果是说机器学习的话,像是 tensorflow, keras

    • @gml780
      @gml780 4 роки тому

      彭彭的課程 开发板,micropython的课程做几期吧大佬🤣🤣🤣

  • @are0722
    @are0722 Рік тому

    老師 檔案找不到了

  • @東聖金
    @東聖金 3 роки тому

    老師!!!! 您到底是如何一次全註解的???

    • @A_c95615
      @A_c95615 3 роки тому +1

      全選起來 ctrl+/

    • @cwpeng-course
      @cwpeng-course  3 роки тому

      感謝 @A. Chen 的回應 :)

    • @東聖金
      @東聖金 3 роки тому

      @@A_c95615 謝謝你~~

  • @徐仁鴻-x5g
    @徐仁鴻-x5g 4 роки тому +1

    老師你是怎麼一次把很多行加#字號的,感覺這玩意才是最實用的XDD

  • @neverlandtf
    @neverlandtf 4 роки тому

    赞 ❤

  • @collyyang9664
    @collyyang9664 2 роки тому

    good

  • @xujason4607
    @xujason4607 3 роки тому

    nlargest() 方法应该是取最大值吧,nlargest(100) 是取100个最大值吧, 这个搞不清楚,谢谢

  • @棠-n6s
    @棠-n6s 3 роки тому +1

    其實要找game的話應該找Category吧哈哈,老師很少玩遊戲喔

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      XDDDD 哈哈哈哈,這樣也行 ~~~~

  • @lzy909axym5
    @lzy909axym5 3 роки тому

    18:44 大家以為寫程式的畫面都長這樣

  • @41HUANG
    @41HUANG 9 місяців тому

    想請教老師我的csv資料一直無法輸進python,用下面這個路徑加檔名還是沒辦法顯示data=pd.read_csv("C:/Users/user/Desktop/python/googleplaystore.csv"),想詢問老師有其他方式嗎謝謝

    • @howshy
      @howshy 4 місяці тому

      data=pd.read_csv("googleplaystore.csv", encoding="unicode_escape")
      你把後面的加進去看看

  • @gml780
    @gml780 4 роки тому +1

    python方面的内容能多做一些出来?

    • @cwpeng-course
      @cwpeng-course  4 роки тому +6

      我會盡量多放一些東西,不過時間有限就是了 QQ

    • @gml780
      @gml780 4 роки тому +1

      彭彭的課程 更新的频率太低了

    • @nightsky1212
      @nightsky1212 4 роки тому +11

      @@gml780 老師免費教我們就不錯了

    • @kevin2622655
      @kevin2622655 4 роки тому +3

      @@gml780 如果覺得更新頻率太低 那大可以你來做 或是 找別人的課程,不懂免費的課程你還要求什麼,他有跟你收錢?

    • @ellen1014
      @ellen1014 4 роки тому +2

      @@nightsky1212 沒錯 老師功德無量

  • @toolman6300
    @toolman6300 3 роки тому

    想請問老師
    print("包含關鍵字的應用程式數量",data[condition]["App"].shape)
    這段最後跑出來的結果並沒有顯示欄位數量
    出現 包含關鍵字的應用程式數量 (244,) 請問這是甚麼問題呢?或是說可以忽略?

    • @cwpeng-course
      @cwpeng-course  3 роки тому +1

      (244,) 中的 244 就是我們要的東西了哦 ~

    • @kaihsin1703
      @kaihsin1703 4 місяці тому

      print('安裝數量大於 100000 的應用程式有幾個', data[condition].shape) #安裝數量大於 100000 的應用程式有幾個 (4950, 13) 這樣的元祖,表示有4950行和13列。
      print('安裝數量大於 100000 的應用程式有幾個', data[condition].shape[0]) #安裝數量大於 100000 的應用程式有幾個 4950 獲取元祖的第一個元素,即行數4950