知識(shí)點(diǎn)梳理:
1.相對(duì)路徑及絕對(duì)路徑載入數(shù)據(jù)(使用os.getcwd()查看當(dāng)前工作目錄)
2.讀取數(shù)據(jù):read_table, read_csv, read_excel
3.數(shù)據(jù)模塊,逐塊讀取chunksize
4.修改列名:df.columns=[ ]
5.查看數(shù)據(jù)的基本信息:df.info()\df.describe()\df.head(10)\df.tail(15)\df.isnull()
6.Series及Dataframe(是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),“帶有標(biāo)簽的二維數(shù)組”。)
7、查看列:
# df[]默認(rèn)選擇列,[]中寫(xiě)列名
# df[]中為數(shù)字時(shí),默認(rèn)選擇行,且只能進(jìn)行切片的選擇,不能單獨(dú)選擇(df[0])
# df.loc[] - 按index選擇行
# df.iloc[] - 按照整數(shù)位置(從軸的0到length-1)選擇行
8.刪除列:
# del語(yǔ)句 - 刪除列
# drop()刪除列,需要加上axis = 1,inplace=False → 刪除后生成新的數(shù)據(jù),不改變?cè)瓟?shù)據(jù)
9.reset_index()函數(shù)重新設(shè)置索引,drop=True刪除原來(lái)的索引
10.排序:sort_values()--ascending參數(shù):設(shè)置升序降序,默認(rèn)升序
1 第一章:數(shù)據(jù)加載
1.1.1 任務(wù)一:導(dǎo)入numpy和pandas

1.1.2 任務(wù)二:載入數(shù)據(jù)
(1) 使用相對(duì)路徑載入數(shù)據(jù)

(2) 使用絕對(duì)路徑載入數(shù)據(jù)
# 使用os.getcwd()查看當(dāng)前工作目錄


(3)數(shù)據(jù)讀?。簉ead_table, read_csv, read_excel
read_table:讀取普通分隔數(shù)據(jù),主要用于讀取簡(jiǎn)單的數(shù)據(jù),txt/csv
主要參數(shù):
?delimiter:用于拆分的字符,也可以用sep:sep = ','
header:用做列名的序號(hào),默認(rèn)為0(第一行)
index_col:指定某列為行索引,否則自動(dòng)索引0, 1, 等

read_excel:讀取excel數(shù)據(jù)
主要參數(shù):
?sheetname:返回多表使用sheetname=[0,1],若sheetname=None是返回全表 ,若 int/string 返回的是dataframe 若none和list返回的是dict
?header:指定列名行,默認(rèn)0,即取第一行
index_col:指定列為索引列
1.1.3 任務(wù)三:每1000行為一個(gè)數(shù)據(jù)模塊,逐塊讀取
它的本質(zhì)就是將文本分成若干塊,每次處理 chunksize 行的數(shù)據(jù),最終返回一個(gè)TextParser , 對(duì)該對(duì)象進(jìn)行迭代遍歷,可以完成逐塊統(tǒng)計(jì)的合并處理。

1.1.4 任務(wù)四:將表頭改成中文,索引改為乘客ID?
方法1:直接修改列名

方法2:讀取數(shù)據(jù)時(shí)命名列名

方法3:根據(jù)鍵值對(duì)的方式更改

1.2 初步觀察
導(dǎo)入數(shù)據(jù)后,你可能要對(duì)數(shù)據(jù)的整體結(jié)構(gòu)和樣例進(jìn)行概覽,比如說(shuō),數(shù)據(jù)大小、有多少列,各列都是什么格式的,是否包含null等
1.2.1 任務(wù)一:查看數(shù)據(jù)的基本信息



1.2.2 任務(wù)二:觀察表格前10行的數(shù)據(jù)和后15行的數(shù)據(jù)


1.2.4 任務(wù)三:判斷數(shù)據(jù)是否為空,為空的地方返回True,其余地方返回False

1.3 保存數(shù)據(jù)
1.3.1 任務(wù)一:將你加載并做出改變的數(shù)據(jù),在工作目錄下保存為一個(gè)新文件train_chinese.csv

pandas基礎(chǔ)
1.4.1 任務(wù)一:pandas中有兩個(gè)數(shù)據(jù)類型DateFrame和Series,通過(guò)查找簡(jiǎn)單了解他們。然后自己寫(xiě)一個(gè)關(guān)于這兩個(gè)數(shù)據(jù)類型的小例子
Series是帶有標(biāo)簽的一維數(shù)組,可以保存任何數(shù)據(jù)類型(整數(shù),字符串,浮點(diǎn)數(shù),Python對(duì)象等),軸標(biāo)簽統(tǒng)稱為索引

Dataframe是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),“帶有標(biāo)簽的二維數(shù)組”。

1.4.2 任務(wù)二:根據(jù)上節(jié)課的方法載入"train.csv"文件
1.4.3 任務(wù)三:查看DataFrame數(shù)據(jù)的每列的名稱

1.4.4任務(wù)四:查看"Cabin"這列的所有值[有多種方法]

# df[]默認(rèn)選擇列,[]中寫(xiě)列名
# df[]中為數(shù)字時(shí),默認(rèn)選擇行,且只能進(jìn)行切片的選擇,不能單獨(dú)選擇(df[0])
# df.loc[] - 按index選擇行
# df.iloc[] - 按照整數(shù)位置(從軸的0到length-1)選擇行
1.4.5 任務(wù)五:加載文件"test_1.csv",然后對(duì)比"train.csv",看看有哪些多出的列,然后將多出的列刪除

1.4.6 任務(wù)六: 將['PassengerId','Name','Age','Ticket']這幾個(gè)列元素隱藏,只觀察其他幾個(gè)列元素
# del語(yǔ)句 - 刪除列
# drop()刪除列,需要加上axis = 1,inplace=False → 刪除后生成新的數(shù)據(jù),不改變?cè)瓟?shù)據(jù)

1.5 篩選的邏輯
1.5.1 任務(wù)一: 我們以"Age"為篩選條件,顯示年齡在10歲以下的乘客信息。

1.5.2 任務(wù)二: 以"Age"為條件,將年齡在10歲以上和50歲以下的乘客信息顯示出來(lái),并將這個(gè)數(shù)據(jù)命名為midage
# 對(duì)于交集,用&,并集或用|

1.5.3 任務(wù)三:將midage的數(shù)據(jù)中第100行的"Pclass"和"Sex"的數(shù)據(jù)顯示出來(lái)
midage.to_csv('midage.csv'),通過(guò)csv文件來(lái)看,返回的是63行,需要用reset_index()函數(shù)重新設(shè)置索引,drop=True刪除原來(lái)的索引

1.5.4 任務(wù)四:使用loc方法將midage的數(shù)據(jù)中第100,105,108行的"Pclass","Name"和"Sex"的數(shù)據(jù)顯示出來(lái)

1.5.5 任務(wù)五:使用iloc方法將midage的數(shù)據(jù)中第100,105,108行的"Pclass","Name"和"Sex"的數(shù)據(jù)顯示出來(lái)

iloc和loc區(qū)別:iloc需要用索引
探索性數(shù)據(jù)分析
1.6.1 任務(wù)一:利用Pandas對(duì)示例數(shù)據(jù)進(jìn)行排序,要求升序

1.讓行索引升序排序

2.讓列索引升序排序

3.讓列索引降序排序
ascending參數(shù):設(shè)置升序降序,默認(rèn)升序


1.6.2 任務(wù)二:對(duì)泰坦尼克號(hào)數(shù)據(jù)(trian.csv)按票價(jià)和年齡兩列進(jìn)行綜合排序(降序排列)

1.6.3 任務(wù)三:利用Pandas進(jìn)行算術(shù)計(jì)算,計(jì)算兩個(gè)DataFrame數(shù)據(jù)相加結(jié)果
# 兩個(gè)DataFrame相加后,會(huì)返回一個(gè)新的DataFrame,對(duì)應(yīng)的行和列的值會(huì)相加,沒(méi)有對(duì)應(yīng)的會(huì)變成空值NaN。

1.6.4 任務(wù)四:通過(guò)泰坦尼克號(hào)數(shù)據(jù)如何計(jì)算出在船上最大的家族有多少人?


來(lái)源:Datawhale