No video

Python Pandas 資料分析 - DataFrame 雙維度資料 By 彭彭

  Рет қаралды 66,682

彭彭的課程

彭彭的課程

Күн бұрын

喜歡彭彭的教學影片嗎?點擊「加入」按紐取得更多會員服務哦。
加入會員: / @cwpeng-course
DataFrame 雙維度的資料 ( 二維資料 ),詳細教學:
0. 雙維度的表格資料簡介。
1. 資料索引:
1.1 什麼是資料索引。
1.2 內建的資料索引。
1.3 自訂的資料索引。
2. 觀察資料:
2.1 資料數量。
2.2 資料型狀。
2.3 資料索引。
3. 取得列 Row 的資料:
3.1 根據順序取得一整列。
3.2 根據索引取得一整列。
4. 取得欄 Column 的資料:
4.1 根據欄位名稱取得一整欄。
4.2 結合 Series 的概念操作字串。
4.3 結合 Series 的概念取得平均數。
5. 建立新的欄位:
5.1 根據列表建立新欄位。
5.2 根據 Series 建立新欄位。
5.3 根據現有的欄位建立新欄位。
-------------------
更多學習資訊,請到彭彭的課程網站:
training.pada-...

Пікірлер: 147
@AK-di6xs
@AK-di6xs 2 жыл бұрын
講CP值那段快笑死XD 謝謝彭彭老師~ ================================ # Pandas 資料分析 - DataFrame # 雙維度的資料 : 就像是一個表格,有欄(直向)和列(左右)的概念 # 建立DataFrame # 載入 Pandas 模組 # import pandas as pd # 以字典資料為底,建立 DataFrame # pd.DataFrame(字典) # 資料索引 # 資料的獨立編號 : 就像試算表中最左邊的編號 # 內建索引 # 載入 Pandas 模組 # import pandas as pd # 以字典資料為底,建立 DataFrame # pd.DataFrame(字典) # 自訂索引 # 載入 Pandas 模組 # import pandas as pd # 以字典資料為底,建立 DataFrame # pd.DataFrame(字典, index=索引列表) # 觀察資料 # 資料數量 # import pandas as pd # data=pd.DataFrame(字典) # 印出 size 屬性 # print(data.size) # 資料形狀 # import pandas as pd # data=pd.DataFrame(字典) # 印出 shape 屬性 # print(data.shape) # 資料索引 # import pandas as pd # data=pd.DataFrame(字典,index=索引列表) # 印出 index 屬性 # print(data.index) # 取得 [列] [row] 資料 # 根據順序取一整列 # import pandas as pd # data=pd.DataFrame(字典) # 取得一整列 data.iloc[順序] # print(data.iloc[1]) # Series 型態 0 代表第一列 1 代表第二列 2 代表第三列 # 根據索引取一整列 # improt pandas as pd # data=pd.DataFrame(字典,index=索引列表) # 取得一整列 data.loc[索引] # print(data.loc[索引]) # Series 型態 (要注意沒有i) # 取得 [欄] [Column] 資料 # 欄 (column) 在試算表中直向的資料 # 根據名稱取一整欄 # import pandas as pd # data=pd.DataFrame(字典) # 取得一整欄 data[欄位名稱] # print(data[欄位名稱]) # Series 型態 # 建立新的欄位 # 建立新的欄位 # import pandas as pd # data=pd.DataFrame(字典) # 以下語法建立新的欄位 # data["新欄位名稱"]=列表資料 # data["新欄位名稱"]=Series 型態資料 #======================================= # 載入 pandas 模組 import pandas as pd # 資料索引 : pd.DataFrame(字典, index=索引列表) data=pd.DataFrame({ "name":["Amy","Bob","Charles"], "salary":[30000,50000,40000] },index=["a","b","c"]) print(data) print("==============================") # 觀察資料 print("資料數量",data.size) print("資料形狀(列,欄)", data.shape) print("資料索引", data.index) print("==============================") # 取得列(Row/橫向) 的 Series 資料 : 根據順序、根據索引 print("取得第二列", data.iloc[1],sep=" ") print("==============================") print("取得第 c 列", data.loc["c"],sep=" ") print("==============================") # 取得欄 (Column/直向) 的 Series 資料 : 根據欄位的名稱 print("取得 name 欄位", data["name"],sep=" ") names=data["name"] # 取得單維度的 Series 資料 print("把 name 全部轉大寫",names.str.upper(),sep=" ") print("==============================") salaries=data["salary"] print("薪水的平均值", salaries.mean()) print("==============================") # 建立新的欄位 data["revenue"]=[500000,400000,300000] # data[新欄位的名稱]=列表 data["rank"]=pd.Series([3,6,1], index=["a","b","c"]) # data[新欄位的名稱]=Series 的資料 data["cp"]=data["revenue"]/data["salary"] print(data)
@cwpeng-course
@cwpeng-course 2 жыл бұрын
XDXD
@jerry321ab
@jerry321ab 4 жыл бұрын
花了一週把整個系列看過一次,把許多之前看文字不懂的地方釐清了!太感謝老師了!希望之後還有更多python的影片
@cwpeng-course
@cwpeng-course 4 жыл бұрын
很高興對你有幫助 :) 會哦,Python 會持續更新的 ~
@user-rs5yy7nl9o
@user-rs5yy7nl9o 3 жыл бұрын
老師您也講得太好了吧! 每一部分都講得十分詳細 馬上就懂到底什麼東西怎麼用、叫什麼 感謝老師!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
謝謝你的回饋,很高興對你有幫助哦:)
@yenyuliu3524
@yenyuliu3524 4 жыл бұрын
《雙維度的資料》就像是一個表格,有欄和列的概念 《建立DataFrame》 # 載入Pandas模組 import pandas as pd # 以字典資料為底,建立DataFrame pd.DataFrame(字典) *資料索引* 《資料的獨立編號》試算表excel最左邊的編號 《內建索引》 # 載入Pandas模組 import pandas as pd # 以字典資料為底,建立DataFrame pd.DataFrame(字典) 《自訂索引》 # 載入Pandas模組 import pandas as pd # 以字典資料為底,建立DataFrame pd.DataFrame(字典,index=索引列表) *觀察資料* 《資料數量》 import pandas as pd data = pd.DataFrame(字典) print(data.size) # 印出size屬性 《資料形狀》 import pandas as pd data = pd.DataFrame(字典) print(data.shape) # 印出shape屬性 《資料索引》 import pandas as pd data = pd.DataFrame(字典,index=索引列表) print(data.index) # 印出index屬性 *取得「列」資料* 《整列的資料》列Row在試算表中橫向的資料 《依據順序取一整列》 import pandas as pd data = pd.DataFrame(字典,index=索引列表) # 取得一整列data.iloc[順序] print(data[1]) # Series型態 *取得「列」資料* 《整欄的資料》欄column在試算表中橫向的資料 《依據名稱取一整欄》 import pandas as pd data = pd.Series(字典) # 取得一整列data[欄位名稱] print(data[欄位名稱]) # Series型態 *建立新的欄位* 《建立新的欄位》 import pandas as pd data = pd.DataFrame(字典) # 以下語法建立新的欄位 data["新欄位名稱"]=列表資料 data["新欄位名稱"]=Series型態資料 # 載入pandas模組 import pandas as pd # 資料索引: pd.DataFrame(字典,index=索引列表) data = pd.DataFrame({ "name":["Amy","Bob","Charles"], "salary":[30000,50000,40000] }, index=["a","b","c"]) print(data) # >>> name salary # >>> 0 Amy 30000 # >>> 1 Bob 50000 # >>> 2 Charles 40000 # 加上自定義索引 , index=["a","b","c"] # >>> name salary # >>> a Amy 30000 # >>> b Bob 50000 # >>> c Charles 40000 print("====================") # 觀察資料 print("資料數量",data.size) print("資料形狀(列,欄)",data.shape) print("資料索引",data.index) # >>> 資料數量 6 # >>> 資料形狀(列,欄) (3, 2) # >>> 資料索引 Index(['a', 'b', 'c'], dtype='object') # 取得列(Row/橫向)的Series資料:根據順序、根據索引 print("取得第二列", data.iloc[1], sep=" ") print("====================") print("取得第c列", data.loc["c"], sep=" ") # >>> 取得第二列 # >>> name Bob # >>> salary 50000 # >>> Name: b, dtype: object # >>> ==================== # >>> 取得第c列 # >>> name Charles # >>> salary 40000 # >>> Name: c, dtype: object # 取得欄(Column/直向)的Series資料:根據欄位的名稱 print("取得name欄位", data["name"], sep=" ") names = data["name"] # 取得單維度的Series資料 print("把name全部轉大寫", names.str.upper(),sep=" ") # >>> 取得name欄位 # >>> a Amy # >>> b Bob # >>> c Charles # >>> Name: name, dtype: object # >>> 把name全部轉大寫 # >>> a AMY # >>> b BOB # >>> c CHARLES # >>> Name: name, dtype: object salaries = data["salary"] print("薪水的平均值", salaries.mean()) # >>> 薪水的平均值 40000.0 # 建立新的欄位01 # data[新的欄位名稱] = 列表 data["revenue"] = [500000,400000,300000] print(data) # >>> name salary revenue # >>> a Amy 30000 500000 # >>> b Bob 50000 400000 # >>> c Charles 40000 300000 # data[新欄位的名稱] = Series的資料 data["rank"] = pd.Series([3,6,1], index=["a","b","c"]) print(data) # >>> name salary revenue rank # >>> a Amy 30000 500000 3 # >>> b Bob 50000 400000 6 # >>> c Charles 40000 300000 1 # 根據現有欄位複製 data["cp"] = data["salary"] print(data) # >>> name salary revenue rank cp # >>> a Amy 30000 500000 3 30000 # >>> b Bob 50000 400000 6 50000 # >>> c Charles 40000 300000 1 40000 data["cp"] = data["revenue"]/data["salary"] print(data) # >>> name salary revenue rank cp # >>> a Amy 30000 500000 3 16.666667 # >>> b Bob 50000 400000 6 8.000000 # >>> c Charles 40000 300000 1 7.500000
@cwpeng-course
@cwpeng-course 4 жыл бұрын
感謝紀錄 :)
@papa-bl4xd
@papa-bl4xd 4 жыл бұрын
三天时间看完了,讲的通俗易懂。 希望老师能够推出更多的更深入的 python 教程,比如引入更多的模块使用,正则技巧等等
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢,好哦,感谢你的建议 :)
@user-ds1fr3du1k
@user-ds1fr3du1k 4 жыл бұрын
老師的影片真的很受用,連沒接觸過的都能夠理解!!看到最後也不會太難~
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝,也很高興對你有幫助 :)
@user-rs2xt1uh9v
@user-rs2xt1uh9v 4 жыл бұрын
感謝彭彭老師無私分享,這邊分享遇到的問題,若有錯還請老師指正。有遇到unsupported operand type(s) for /: 'int' and 'str'的問題,且之前還遇到算平均時未能得到平均。最終發現數據類型不對導致此問題,相信有些人也會遇到此問題,因此要記得一開始的資料要宣告好即可。分享資料如下: data=pd.DataFrame({ "name":["Amy", "Bob", "Charles"], "salary":["30000","50000","40000"] },index=["a", "b", "c"],dtype="float64")
@user-zs8zk9cr3c
@user-zs8zk9cr3c 4 жыл бұрын
"salary":["30000","50000","40000"] 打錯了 "salary":[30000,50000,40000] 多了冒號便字串
@cwpeng-course
@cwpeng-course 4 жыл бұрын
很棒的細節訊息 ~~~~~ 也感謝 @好姓名 的回應,確實要注意資料型態的問題沒錯哦 ~
@user-bz4vm8iw2d
@user-bz4vm8iw2d 4 жыл бұрын
5天时间看完了,讲的通俗易懂。 感觉还是没有用武之地。 希望老师能够推出更多的更深入的 python 教程,特别是实用性讲学。
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢你的回馈和建议哦,我会考虑进去的 ~~
@gzho2787
@gzho2787 4 жыл бұрын
新年快樂 彭彭老師,目前已經看完全部課程,很感謝老師的細心教學,期待老師下一堂的課程^^
@cwpeng-course
@cwpeng-course 4 жыл бұрын
很棒哦,希望對你有幫助 :)
@thegrandgunslinger2868
@thegrandgunslinger2868 4 жыл бұрын
撐到最後一個影片只有2000 人,是第一個影片的10分之1 XDDDDD
@cwpeng-course
@cwpeng-course 4 жыл бұрын
能夠全部看完做完真的不容易壓 :)
@t29347790
@t29347790 4 жыл бұрын
每天下班吃完晚餐後第一件事就是來學新知識 興奮不已
@cwpeng-course
@cwpeng-course 4 жыл бұрын
哈哈哈哈,這樣感覺很棒 :)
@allentony9983
@allentony9983 4 жыл бұрын
新年快樂~~!!等好久了!!終於更新了~~老師的教學幫助很大~
@cwpeng-course
@cwpeng-course 4 жыл бұрын
新年快樂 ~~!!~~
@jitaoran6973
@jitaoran6973 Жыл бұрын
多谢🙏!考前再过一遍语法,太清晰了
@cwpeng-course
@cwpeng-course Жыл бұрын
谢谢你的回馈,感觉很棒 :)
@liucalista1643
@liucalista1643 4 жыл бұрын
老師新年快樂!謝謝您的教學~
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不客氣,新年快樂 :)
@jackielee4418
@jackielee4418 4 жыл бұрын
謝謝彭彭老師,看完了,獲益良多。
@cwpeng-course
@cwpeng-course 4 жыл бұрын
讚讚,很高興對你有幫助 ~~~~~~
@user-qn3sd8xu1q
@user-qn3sd8xu1q 3 жыл бұрын
感恩老师!谢谢您的精心教学!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
不会,也谢谢你的回馈呦 :)
@affairs27149
@affairs27149 4 жыл бұрын
新年快樂,感謝老師的教學,收穫良多
@cwpeng-course
@cwpeng-course 4 жыл бұрын
新年快樂 :)
@kentisking123
@kentisking123 3 жыл бұрын
清楚明瞭,感謝!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
不會,謝謝你的回饋 :)
@bhliu5567
@bhliu5567 Ай бұрын
請問彭彭老師 建立dataframe時,若要特地給index,index要給的是int還是str? 您影片例子是用 index=["a", "b", "c"] a: 若用index=["0", "1", "2"] -> 給string b: 還是用index=[0, 1, 2] -> 給int 若把整個dataframe印出來,看到index那一個column都是長一樣的 例如以下最左邊那一個column name salary rank 0 amy 3000 3 1 bob 5000 1 2 chris 4000 2 但我實際上去實驗 若用index=["0", "1", "2"], a = data.loc[1]會err,必須要a = data.loc["1"],索引值必須為string 若用index=[0,1,2], a = data.loc["1"]會err,必須要a = data.loc[1],索引值必須為int 這在使用上將相當困擾 我怎麼知道目前這個dataframe的index是string還是int? 因此產生一個疑問: 更改index的好處在哪裡? 另外 若讀進excel成為一個dataframe,default的index是否就是 int的0 1 2 ,而非string的0 1 2 ? 謝謝
@user-ce7zx3dq2z
@user-ce7zx3dq2z 2 жыл бұрын
讲的也太清楚了,太感谢了❤
@cwpeng-course
@cwpeng-course 2 жыл бұрын
❤❤❤
@bhliu5567
@bhliu5567 Ай бұрын
請問彭彭老師 13:37,建立dataframe時,特地給index的好處在哪裡? 一般在分析excel/csv檔案時,用pandas讀進來變成一個dataframe時,會友需要特地去修改index嗎? 修改之後,對於往後的應用上有什麼方便之處? 謝謝
@bhliu5567
@bhliu5567 Ай бұрын
您好 想請教一個疑惑 看影片到一半就有這個疑惑 好奇之下實際試試看 在6:02講data.iloc[順序]有看到是Series型態 在6:22講data.loc[索引]有看到是Series型態 取row出來竟然是Series型態? Series我都想像成是column 如果取row出來變成Series型態,那為何我無法再把這個Series型態塞回去變成一個column? ex: data = pd.DataFrame({ "name": ["amy", "bob", "chris"], "salary": [3000, 5000, 4000], "rank": [3, 1, 2] }) a = data.iloc[1] data["new_column"] = a 印出來新增的這一column會變成Nan data = name salary rank new_cloumn 0 amy 3000 3 NaN 1 bob 5000 1 NaN 2 chris 4000 2 NaN 起初我以為是因為取row會橫跨string和int導致型態不符合每個column的形態要一致 我把name從string改成數字 data = pd.DataFrame({ "name": [999, 888, 777], "salary": [3000, 5000, 4000], "rank": [3, 1, 2] }) a = data.iloc[1] data["new_column"] = a 印出來新增的這一column還是會變成Nan data = name salary rank new_cloumn 0 amy 3000 3 NaN 1 bob 5000 1 NaN 2 chris 4000 2 NaN 請問彭彭老師我該如何理解? 謝謝您
@bhliu5567
@bhliu5567 Ай бұрын
請問彭彭老師 pandas的dataframe型態來處理excel/csv的檔案 這個excel/csv的檔案是否每一個column都要同一種型態,例如都是string or int 因為看影片的使用,取出column之後的series 不管是取條件: data["salary"] >= 10000 還是string轉換大小寫: data["name"].str.upper() 感覺dataframe使用上都是對一個column來做同樣的處理 因此,若excel/csv原始檔內的資料排法並非是以column來安排"同樣型態的資料" 那用pandas分析之前是否要先對excel/csv先進行轉置矩陣? 謝謝
@chenlinying16
@chenlinying16 4 жыл бұрын
老師,你太好了,在家跟著你學python
@cwpeng-course
@cwpeng-course 3 жыл бұрын
加油加油 :))))
@jon.h1652
@jon.h1652 3 жыл бұрын
老師你好, 可否做一集是講解 groupby 及 aggregate, 謝謝
@cwpeng-course
@cwpeng-course 3 жыл бұрын
感謝你的建議,我會安排看看的 :))
@user-lx6lq7xb7c
@user-lx6lq7xb7c 2 жыл бұрын
iloc gets rows (and/or columns) at integer locations.
@cwpeng-course
@cwpeng-course 2 жыл бұрын
感謝英文說明 :)))
@user-ku7yc1mb3t
@user-ku7yc1mb3t 11 ай бұрын
data.loc["d"]=["Key",60000] 嘗試了一下.這樣可以建立新的列在最後一列之後 想知道這種情況下有沒有辦法用Series的型態代替列表["Key",60000] (我照著建立欄的時候的寫法寫出現ERROR)
@cwpeng-course
@cwpeng-course 10 ай бұрын
沒辦法哦,因為 loc 是對應到列 row 的概念,而一個 row 中可能會包含多種型態的資料,這個在本質上和 Series 不合,每個 Series 都是記錄一種型態的資料而已,所以通常用來代表同一個欄位的所有資料。
@bigeye6525
@bigeye6525 4 жыл бұрын
讲的非常好。
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢 ~
@bigeye6525
@bigeye6525 4 жыл бұрын
@@cwpeng-course 和大陆相比,你的收费那么低。为为什么不考虑在大陆开讲?再说,现在就业这么烂,机会比台湾多啊
@neutralname404
@neutralname404 4 жыл бұрын
厉害,支持,过几天再看,这几天在看API :)
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢呦 :)
@user-cj8be3cq4q
@user-cj8be3cq4q 4 жыл бұрын
老师,您好,我看完了您讲的Python基础教程,我觉得讲得非常的仔细,请问您后期还会更新Python教程吗?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢你的回馈,会哦,我都会慢慢地更新教学内容 :)
@141blackand
@141blackand 4 жыл бұрын
謝謝彭彭老師教學。 請問新增一列應如何做到呢?例如已有a,b,c列,想新增d列 peter 50000 60000 5 ....
@aapplefish
@aapplefish 4 жыл бұрын
只解了一半XDDDD 變成1234了XDDDDD 老師,請問要怎麼維持abc? import pandas as pd data = pd.DataFrame({ "name":["Amy","Bob","Charles"], "salary":[30000,50000,40000] }, index=["a","b","c"]) data["revenue"] = [500000,400000,300000] data = data.append({'name' : 'Peter' , 'salary' : 50000, "revenue":60000} , ignore_index=True) data["cp"] = data["revenue"]/data["salary"] print(data)
@cwpeng-course
@cwpeng-course 4 жыл бұрын
感謝 @YYL 的回應 :) 可以把倒數第三行程式稍做修改,就能適當的管理資料的索引,如下: data=data.append(pd.DataFrame({"name":["Peter"], "salary":[50000]}, index=["d"]))
@user-os6or7pj7q
@user-os6or7pj7q Жыл бұрын
@@cwpeng-course 老師不好意思,我在新增欄位rank後 使用您上述的語法 想要新增第四列,但是沒有成功,窗口顯示 'DataFrame' object has no attribute 'append' 我上網查了方法 但還是沒有解決 ~想請問老師 問題是出在哪裡
@mengmeng8383
@mengmeng8383 9 ай бұрын
@@user-os6or7pj7q 我的程式碼與彭彭老師一樣的話會出現以下錯誤: AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'? 所以就依照Python給的指示改成: data=data._append(pd.DataFrame({"name":["Peter"], "salary":[50000]}, index=["d"])) 這樣就可以成功了喔
@user-ib3pe9kb5m
@user-ib3pe9kb5m 4 жыл бұрын
大陆这边对于表格横向的部分称作行,纵向的部分称作列,列的概念和彭彭老师讲的正好相反,听的晕晕乎乎的XD
@cwpeng-course
@cwpeng-course 4 жыл бұрын
XDDDDDDD 希望还勉强过得去 ~~~
@dr.nonsense3025
@dr.nonsense3025 3 жыл бұрын
29:16 慣老闆的啟蒙課程XD
@cwpeng-course
@cwpeng-course 3 жыл бұрын
XDDDDD
@jackw3358
@jackw3358 2 жыл бұрын
彭彭老师的讲解非常棒! 清晰顺畅容易操作。 我有一个问题, 在操作 data["cp"]=data["revenue"]/data["salary"] 时,返回的type error:unsupported operated types for /: 'str' and 'str' 老师可以解释一下吗?谢谢!
@cwpeng-course
@cwpeng-course 2 жыл бұрын
代表你的 data 中的欄位資料是字串的形式,創建資料的時候不要在數字外面加上引號,不然就會變成字串,無法做除法。
@user-os6or7pj7q
@user-os6or7pj7q Жыл бұрын
太開心了 我原本一直找不到自己問題到底在哪,每次看到留言區都能找我自己的錯誤哈哈 太感謝了
@keithdiscovery
@keithdiscovery 2 жыл бұрын
加入會員,重新看一下
@cwpeng-course
@cwpeng-course 2 жыл бұрын
希望對你有幫助哦!
@paggie90
@paggie90 3 жыл бұрын
彭彭老師:請問要如將excel的資料讀入python,再進行資料分析??是否有這方面的課程網站可以參閱,謝謝!!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
可以簡單的試試看: import pandas as pd df=pd.read_excel("檔案路徑") print(df)
@hank86211
@hank86211 4 жыл бұрын
交的很好 謝啦
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝回饋 :)
@cookiesky34
@cookiesky34 2 жыл бұрын
老師請問一下,如果我想要增加一個D列. 是算 sarary revenue的平均 我該怎麼加。目前能做到用.mean()算出平均 然後用,appen的方式加入到下一列,但是不知道要怎麼樣在那一列的0的位置 標示出"mean"這個字,謝謝
@cwpeng-course
@cwpeng-course 2 жыл бұрын
通常我們不會把 mean() 這種計算後的統計量,放到原始資料的 DataFrame 的後面 ( 類似 Excel 的想像 ),這在資料設計上其實不太順,未來資料有更動的時候該怎麼辦?自然找不到適合的做法,反而是需要的時候計算出來,存放到其他的結構、檔案或直接輸出。
@user-uu8lc6he8w
@user-uu8lc6he8w 4 жыл бұрын
期待進階的python教學
@cwpeng-course
@cwpeng-course 4 жыл бұрын
好的,我在規劃中,希望今年中之後可以有些著落 ~
@dannybot520
@dannybot520 3 жыл бұрын
新增欄位那裡revenue新增沒附上index,印出會按順序,也沒問題 但新增rank,後面沒附上index=["a","b","c"],照樣印的出來,可是不是印3,6,1,是三個NaN 好怪~~ 我以為也會照默認的順序印出
@cwpeng-course
@cwpeng-course 2 жыл бұрын
謝謝分享,至於奇怪的部份,可能要看看實際的程式才能進一步判斷了 XD
@mengmeng8383
@mengmeng8383 9 ай бұрын
實測發現如果新增欄位的時候使用一般 data[新欄位的名稱]=列表 語法的話,會按照默認順序填入,但如果使用Series較嚴謹的寫法,不加index就會出現NaN
@chenwatson1690
@chenwatson1690 4 жыл бұрын
想請問彭彭老師,在之後有打算教學django的部分嗎?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
短時間內不會呦,網站伺服器的部份我這邊選擇了 Flask 來做教學 ~
@user-wd8lh6ej9b
@user-wd8lh6ej9b Жыл бұрын
想請問老師,影片最後得到了cp值的資訊,那若想用max()的方法找到cp=16.666再輸出該列的"name",也就是"Amy"的話該怎麼做呢,謝謝老師
@kieratsai
@kieratsai Жыл бұрын
idxmax() 可以傳回索引值 idx=data["cp"].idxmax() print(data.loc[idx]["name"])
@cwpeng-course
@cwpeng-course Жыл бұрын
感謝 @Kiera Tsai 的說明,非常清楚 :)
@cnlion3360
@cnlion3360 4 жыл бұрын
讲的很好。不过有点疑惑,我从小学的是横成行,竖成列,竖列也可以叫栏。 难道台湾是横成列?
@dada-ge4es
@dada-ge4es 4 жыл бұрын
對唷我們是教直行橫列XD
@cwpeng-course
@cwpeng-course 4 жыл бұрын
是哦,这确实有些落差 ~
@jimmy-li6pc
@jimmy-li6pc 4 жыл бұрын
謝謝你
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不會呦 :)
@hungbomb
@hungbomb 4 жыл бұрын
彭彭老師到底會多少東西! 好厲害
@cwpeng-course
@cwpeng-course 4 жыл бұрын
我也是以年為單位,一直教一直學哦 :)
@Sophia-vp2oj
@Sophia-vp2oj 4 жыл бұрын
老師新年快樂~~另外請問要怎麼用pandas讀取及合併多個csv檔案呀?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
感謝 @Winter 的回應,很棒的分享 :)
@austinli80160
@austinli80160 3 жыл бұрын
使用預設的索引出現這個 資料索引 RangeIndex(start=0, stop=3, step=1) 想問一下stop=3, step=1 是什麼意思呢?
@cwpeng-course
@cwpeng-course 3 жыл бұрын
從編號 0 開始建立到編號 3 結束,每次往前數 1 個整數。
@asdfsadffasfasdf6081
@asdfsadffasfasdf6081 4 жыл бұрын
努力中
@cwpeng-course
@cwpeng-course 4 жыл бұрын
加油 ~~~
@laulawrence
@laulawrence Жыл бұрын
data["revenue"]=[40000000, 44444444, 3333333] data["rank"]=pd.Series([3, 6, 1], index=["a","b","c"]) are these two methods of doing the same thing??
@cwpeng-course
@cwpeng-course Жыл бұрын
Almost the same, but there is no customized index in first statement.
@user-rs4vb4zq9o
@user-rs4vb4zq9o 2 жыл бұрын
老師您好,想知道如果像是使用Series查詢出max後,要怎麼知道他對應的索引呢?即要如何使用value反查key值呢??🥺️🥺️ 感謝老師
@cwpeng-course
@cwpeng-course 2 жыл бұрын
有個簡單的做法如下: series[欄位名稱==值].index[0]
@yichenchen4633
@yichenchen4633 3 жыл бұрын
老師您好,想請問一下建立新的欄位這邊,如果資料列數有3列,但我只有2列的新資料,只寫2列的話會產生錯誤,這部分要如何處理呢?有方法讓它自動補0或者是Nan之類的嗎?感謝
@cwpeng-course
@cwpeng-course 3 жыл бұрын
我查了一下想看有沒有簡單的作法,但好像沒找到,所以就直接寫點邏輯來處理,主要概念就是先把資料補滿到現有的數量,之後再塞進去。你可以專注在以下範例的 newColumn 的處理部份: import pandas as pd data=pd.DataFrame({ "name":["Bob", "Alice", "John"], "age":[30, 20, 15] }) # 資料少了一些 newColumn=[3000, 2000] rows=data.shape[0] # 取得原來資料的 rows 數量,目前是 3 while len(newColumn)
@yichenchen4633
@yichenchen4633 3 жыл бұрын
@@cwpeng-course 感謝老師的回覆,參考了您的程式後,感覺好像一開始新欄位先給全0矩陣後,再把想放的值放入就不用想補0的問題了,感謝老師
@yeetangliew9725
@yeetangliew9725 3 жыл бұрын
老师我在跑 data["cp"]=data["revenue"]/data["salary"] 的时候出现 TypeError: unsupported operand type(s) for /: 'int' and 'str' 请问要怎样解决?谢谢
@cwpeng-course
@cwpeng-course 3 жыл бұрын
因为你的资料里面的 revenue 或 salary 是储存成字串的形式,所以无法做除法哦 ~
@RL-dh6jh
@RL-dh6jh 4 жыл бұрын
老師您好, 請問要如何將以下類型的文字檔轉為 DataFrame aaa test1 bbb test2 ccc test3
@cwpeng-course
@cwpeng-course 4 жыл бұрын
你可以參考後面的影片,使用 pd.read_csv(檔案名稱路徑, sep=" ") 其中 sep 的參數要指定你的 aaa 和 test1 中的區隔符號,看是空白或是 tab 符號。
@starlee8536
@starlee8536 3 жыл бұрын
彭彭老師好 我是用jupyter notebook撰寫程式,我目前遇到的問題是 項目列name,salary,revenue,都改成中文 姓名欄也改成中文 這樣就導致列不會對齊了,是哪裡出了問題
@cwpeng-course
@cwpeng-course 2 жыл бұрын
這其實沒有太大問題,在終端機的輸出本來就沒有辦法保證對齊,我們比較在意的是他實際的結構是否正確,而不是畫面的呈現。
@Bibi-uh7dr
@Bibi-uh7dr 3 жыл бұрын
不好意思,為什麼我打完後輸出顯示不出表格,只顯示no such file or directory
@cwpeng-course
@cwpeng-course 3 жыл бұрын
可能程式的檔案名稱沒有輸入正確,或者沒有先做打開專案資料夾的動作 ~
@tsai94520
@tsai94520 4 жыл бұрын
pandas很像無法寫成函式做字串搜尋,很像會型不一樣錯誤?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
可以的,只是要配合它的特性來做處理,這就要看實際的程式細節了 ~
@yuezhao7146
@yuezhao7146 Жыл бұрын
老师你好,首先非常感谢你的教学,我是小白都能跟着做下来,但是遇到一个问题,data=pd.DataFrame({ "name":["Amy", "Jone", "Bob"], "salary":[30000, 50000, 40000] }, index=["a", "b", "c"]), # 自定索引 print(data) print("======================") # 观察资料 print("观察数量", data.size) print("资料形状", data.shape) print("资料索引", data.index) 这是我的code,但是在运行时显示print("观察数量", data.size) ^^^^^^^^^ AttributeError: 'tuple' object has no attribute 'size' 这是什么原因呢? 感谢老师
@yuezhao7146
@yuezhao7146 Жыл бұрын
而且我在运行data=pd.DataFrame({ "name":["Amy", "Jone", "Bob"], "salary":[30000, 50000, 40000] }, index=["a", "b", "c"]), # 自定索引 print(data) 这一步骤的时候,结果显示( name salary a Amy 30000 b Jone 50000 c Bob 40000,) ,是有()的,我不知道哪里不一样
@cwpeng-course
@cwpeng-course Жыл бұрын
這很可能只是細節版本的差異產生的輸出內容差異,實際的資料並沒有不同,所以可以不用太在乎這點輸出上的小落差。
@DAS-kg1vz
@DAS-kg1vz Жыл бұрын
請問有辦法根據姓名來找出對應的薪水資料嗎?而非透過index
@cwpeng-course
@cwpeng-course Жыл бұрын
後面的教學有提到資料篩選相關的操作,就可以根據特定的欄位來搜尋到想要的資料哦 ~
@user-cyh312
@user-cyh312 3 жыл бұрын
老師:如果我rank 想用cp 的值 來排名次,該如何輸入
@cwpeng-course
@cwpeng-course 3 жыл бұрын
得看看錯誤訊息和程式碼,才有辦法幫得上忙哦
@dax0789
@dax0789 4 жыл бұрын
請問一下能否使用atom這種文字編輯器來寫網路爬蟲或資料分析? 對我來說vscode實在太笨重了
@cwpeng-course
@cwpeng-course 4 жыл бұрын
可以哦,主要就是文字編輯器 + 命令介面就可以運作。 用不同的工具,有些操作細節會不太一樣,但應該不難解決 ~
@user-kx9ms1bw6b
@user-kx9ms1bw6b 2 жыл бұрын
請問為什麼有時候 data.max() 這種要帶括號 像是data.size又不用帶 有人能幫阿呆我解答嗎
@cwpeng-course
@cwpeng-course 2 жыл бұрын
一個是方法 ( 函式 ),需要呼叫。另一個是屬性,不是函式,直接取用。
@huahua4987
@huahua4987 4 жыл бұрын
请问老师 pandas有针对EXCEL教学吗?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
目前没有哦,我会考虑看看,谢谢你的建议 :)
@ellen1014
@ellen1014 4 жыл бұрын
請教彭彭老師,我照你的打但試了幾次之後都出現以下訊息,請問是什麼原因呢? 謝謝! raceback (most recent call last): File "pandas-dataframe.py", line 2, in import pandas as pd File "C:\Users\shang641\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\__init__.py", line 16, in raise ImportError( ImportError: Unable to import required dependencies: numpy: DLL load failed while importing _umath_linalg: 存取被拒。
@cwpeng-course
@cwpeng-course 4 жыл бұрын
通常是你的電腦中有安裝其他 Python 相關的套件管理工具,例如 Anaconda 之類的東西,如果已經用不到了,建議移除後試試看。
@ellen1014
@ellen1014 4 жыл бұрын
@@cwpeng-course 謝謝老師回覆, 其實我不太了解什麼是套件管理工具 (資質駑鈍), 我的python版本是3.8.3 (32bit) 爬了很多文以後, 發現用window安裝pandas或numpy似乎滿容易會有這個問題, 後來找到以下影片先uninstall再重新安裝就解決了: kzbin.info/www/bejne/oJOsgquHn9F8jck
@yingyang1370
@yingyang1370 4 жыл бұрын
你好,请问如果cp值要取整数的话,需要怎么操作
@cwpeng-course
@cwpeng-course 4 жыл бұрын
整数除法可以使用两条斜线 // 取代 /
@user-wb4fm4yb6u
@user-wb4fm4yb6u 3 жыл бұрын
不好意思我想問一下老師若知道cp值之後我想將3個人排名,要如何撰寫,想不出來,希望老師解救 感謝老師
@cwpeng-course
@cwpeng-course 3 жыл бұрын
你可以查詢看看 pandas sort_values 相關的資訊哦
@dawi9840
@dawi9840 4 жыл бұрын
30:26 可憐的Amy ,俗又大碗.....幫QQ
@cwpeng-course
@cwpeng-course 4 жыл бұрын
哈哈哈哈 ~~~~
@user-gb5mw2yw7e
@user-gb5mw2yw7e 3 жыл бұрын
聽到cp值不自覺鼻酸起來XD
@cwpeng-course
@cwpeng-course 3 жыл бұрын
XDDDDDDDD
@user-yx7zz2mm2t
@user-yx7zz2mm2t 2 ай бұрын
cp值高不是好事😂😂😂
@cwpeng-course
@cwpeng-course 2 ай бұрын
😂😂😂
Python Pandas 資料分析 - 篩選資料 By 彭彭
18:26
彭彭的課程
Рет қаралды 52 М.
Python 錯誤、例外處理 Exception Handling By 彭彭
26:57
彭彭的課程
Рет қаралды 13 М.
My Cheetos🍕PIZZA #cooking #shorts
00:43
BANKII
Рет қаралды 27 МЛН
Ik Heb Aardbeien Gemaakt Van Kip🍓🐔😋
00:41
Cool Tool SHORTS Netherlands
Рет қаралды 9 МЛН
🩷🩵VS👿
00:38
ISSEI / いっせい
Рет қаралды 23 МЛН
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Паша Осадчий
Рет қаралды 1,4 МЛН
Python NumPy 多維陣列 ndarray 索引、切片操作 By 彭彭
32:16
Merging DataFrames in Pandas | Python Pandas Tutorials
22:09
Alex The Analyst
Рет қаралды 96 М.
Python 全民瘋AI系列 [Day 25] 使用Python Flask架設API吧!
29:53
Python 生成器 Generator 基礎使用 By 彭彭
29:24
彭彭的課程
Рет қаралды 24 М.
Python Pandas 資料分析 - 基礎教學 By 彭彭
25:12
彭彭的課程
Рет қаралды 131 М.
Python 裝飾器工廠 Decorator Factory By 彭彭
32:40
彭彭的課程
Рет қаралды 18 М.
Python 亂數與統計模組 By 彭彭
23:41
彭彭的課程
Рет қаралды 105 М.
My Cheetos🍕PIZZA #cooking #shorts
00:43
BANKII
Рет қаралды 27 МЛН