動手學習資料分析第1章
本文是Datawhale的組隊學習動手學習資料分析的學習筆記,課件內容來源於Datawhale的團隊;程式碼部分參考了b站up主橘子冰的一隅角落的系列影片
第一節 資料載入及初步觀察
1.1 載入資料
1.匯入numpy和pandas
import numpy as np
import pandas as pd
2.載入資料
pd.read_csv("<路徑>")
read_csv()和read_table()之間的區別
函式read_csv()和read_table()的作用相同,只是預設分隔符不同。
在read_csv()中,定界符為,
,在read_table()中,定界符為\ t
3.每1000行為一個資料模組,逐塊讀取
pd.read_csv("<路徑>",chunksize=1000)
4.將表頭改成中文,索引改為乘客ID
pd.columns = []
pd.rename = ['原表頭':'新表頭']
1.2 初步觀察
1.檢視資料的基本資訊
df.info()
df.describe()
2.觀察表格前10行的資料和後15行的資料
df.head(n) #前n行
df.tai(n) #後n行
3.判斷資料是否為空,為空的地方返回True,其餘地方返回False
df.isnull()
1.3 儲存資料
將你載入並做出改變的資料,在工作目錄下儲存為一個新檔案train_chinese.csv
df.to_csv("train_chinese.csv")
第二節 pandas基礎
1.4 知道你的資料叫什麼
1.pandas中有兩個資料型別DateFrame和Series,透過查詢簡單瞭解他們。
Series是一維陣列,DataFrame是二維陣列。
2.檢視DataFrame資料的每列的名稱
df.columns
3.檢視"Cabin"這列的所有值
df.Cabin #屬性法
df['Cabin'] #字典法
4.載入檔案"載入檔案"test_1.csv",然後對比"train.csv",看看有哪些多出的列,然後將多出的列刪除,然後對比"train.csv",看看有哪些多出的列,然後將多出的列刪除
df1 = pd.read_csv("test_1.csv)
del df1['']
df1.pop("")
df1.drop("",axis = 1/0) #1代表列0代表行
5.將['PassengerId','Name','Age','Ticket']這幾個列元素隱藏,只觀察其他幾個列元素
使用drop方式刪除,若加上引數inplace = True 則表示徹底刪除
1.5 篩選的邏輯
1.我們以"Age"為篩選條件,顯示年齡在10歲以下的乘客資訊。
df1[df1['Age'] < 10]
- 以"Age"為條件,將年齡在10歲以上和50歲以下的乘客資訊顯示出來,並將這個資料命名為midage
midage = df1[(df1['Age'] > 10) & (df1['Age'] < 50)]
3.將midage的資料中第100行的"Pclass"和"Sex"的資料顯示出來
midage = midage.reset_index(drop=True)
midage.to_csv('midage.csv',index=False)
midage = pd.read_csv('midage.csv')
midage1 = midage.loc[[100], ['Pclass','Pclass']]
4.使用iloc方法將midage的資料中第100,105,108行的"Pclass","Name"和"Sex"的資料顯示出來
midage1.iloc[[100,105,108],[3,4,5]]
第三節:探索性資料分析
1.6 瞭解你的資料嗎?
sample = pd.DataFrame(np.random.randn(3,3),
index = list('213')
columns = list('bca'))
1.讓行索引升序排序
sample.sort_index()
2.讓列索引升序排序
sample.sort_index(axis = 1)
3.讓列索引降序排序
sample.sort_index(axis = 1,ascending = False)
4.讓任選兩列資料同時降序排序
sample.sort_index(['a','c'],ascending = False)