Python Pandas 資料分析 – DataFrame 雙維度資料 By 彭彭
[ad_1]
喜歡彭彭的教學影片嗎?點擊「加入」按紐取得更多會員服務哦。
加入會員:https://www.youtube.com/channel/UCguZS-y7codLSt6vpkVdnKg/join
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 根據現有的欄位建立新欄位。
——————-
更多學習資訊,請到彭彭的課程網站:
https://training.pada-x.com/
Source
[ad_2]
感恩老师!谢谢您的精心教学!
老師您好,想請問一下建立新的欄位這邊,如果資料列數有3列,但我只有2列的新資料,只寫2列的話會產生錯誤,這部分要如何處理呢?有方法讓它自動補0或者是Nan之類的嗎?感謝
row 不是行吗?column是列吧 听着有点别扭 不过说的倒是清晰
彭彭老師:請問要如將excel的資料讀入python,再進行資料分析??是否有這方面的課程網站可以參閱,謝謝!!
老師,你太好了,在家跟著你學python
讲的很好。不过有点疑惑,我从小学的是横成行,竖成列,竖列也可以叫栏。
难道台湾是横成列?
彭彭老師到底會多少東西! 好厲害
努力中
30:26 可憐的Amy ,俗又大碗…..幫QQ
老師您好, 請問要如何將以下類型的文字檔轉為 DataFrame
aaa test1
bbb test2
ccc test3
請教彭彭老師,我照你的打但試了幾次之後都出現以下訊息,請問是什麼原因呢? 謝謝!
raceback (most recent call last):
File "pandas-dataframe.py", line 2, in <module>
import pandas as pd
File "C:Usersshang641AppDataLocalProgramsPythonPython38-32libsite-packagespandas__init__.py", line 16, in <module>
raise ImportError(
ImportError: Unable to import required dependencies:
numpy: DLL load failed while importing _umath_linalg: 存取被拒。
老師的影片真的很受用,連沒接觸過的都能夠理解!!看到最後也不會太難~
花了一週把整個系列看過一次,把許多之前看文字不懂的地方釐清了!太感謝老師了!希望之後還有更多python的影片
大陆这边对于表格横向的部分称作行,纵向的部分称作列,列的概念和彭彭老师讲的正好相反,听的晕晕乎乎的XD
你好,请问如果cp值要取整数的话,需要怎么操作
《雙維度的資料》就像是一個表格,有欄和列的概念
《建立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="n")
print("====================")
print("取得第c列", data.loc["c"], sep="n")
# >>> 取得第二列
# >>> name Bob
# >>> salary 50000
# >>> Name: b, dtype: object
# >>> ====================
# >>> 取得第c列
# >>> name Charles
# >>> salary 40000
# >>> Name: c, dtype: object
# 取得欄(Column/直向)的Series資料:根據欄位的名稱
print("取得name欄位", data["name"], sep="n")
names = data["name"] # 取得單維度的Series資料
print("把name全部轉大寫", names.str.upper(),sep="n")
# >>> 取得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
謝謝彭彭老師教學。
請問新增一列應如何做到呢?例如已有a,b,c列,想新增d列 peter 50000 60000 5 ….
謝謝彭彭老師,看完了,獲益良多。
讲的非常好。
期待進階的python教學
看老師的影片比補習班還要有用xd
感謝彭彭老師無私分享,這邊分享遇到的問題,若有錯還請老師指正。有遇到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")
pandas很像無法寫成函式做字串搜尋,很像會型不一樣錯誤?
5天时间看完了,讲的通俗易懂。
感觉还是没有用武之地。
希望老师能够推出更多的更深入的 python 教程,特别是实用性讲学。
每天下班吃完晚餐後第一件事就是來學新知識 興奮不已
三天时间看完了,讲的通俗易懂。
希望老师能够推出更多的更深入的 python 教程,比如引入更多的模块使用,正则技巧等等
老师,您好,我看完了您讲的Python基础教程,我觉得讲得非常的仔细,请问您后期还会更新Python教程吗?
新年快樂 彭彭老師,目前已經看完全部課程,很感謝老師的細心教學,期待老師下一堂的課程^^
交的很好 謝啦
撐到最後一個影片只有2000 人,是第一個影片的10分之1 XDDDDD
老師新年快樂~~另外請問要怎麼用pandas讀取及合併多個csv檔案呀?
厉害,支持,过几天再看,这几天在看API 🙂
请问老师 pandas有针对EXCEL教学吗?
想請問彭彭老師,在之後有打算教學django的部分嗎?
新年快樂,感謝老師的教學,收穫良多
老師新年快樂!謝謝您的教學~
請問一下能否使用atom這種文字編輯器來寫網路爬蟲或資料分析? 對我來說vscode實在太笨重了
新年快樂~~!!等好久了!!終於更新了~~老師的教學幫助很大~
謝謝你