2021-07-11

動手學數(shù)據(jù)分析之數(shù)據(jù)加載

1.1 載入數(shù)據(jù)

1.1.1 導入numpy和pandas

import numpy as np
import pandas as pd

1.1.2 :載入數(shù)據(jù)

(1)

使用相對路徑載入數(shù)據(jù)

df=pd.read_csv("train.csv")

打印載入數(shù)據(jù)前4行

df.head(4)

結(jié)果:


image.png
注意:df.head()會將表格中的第一行看作列名,并默認輸出之后的五行,在head后面的括號里面直接寫你想要輸出的行數(shù)也行逼友,比如6拇惋,8之類的

(2)

【思考】知道數(shù)據(jù)加載的方法后,試試pd.read_csv()和pd.read_table()的不同陶舞,如果想讓他們效果一樣嗽测,需要怎么做?了解一下'.tsv'和'.csv'的不同肿孵,如何加載這兩個數(shù)據(jù)集唠粥?

df=pd.read_table('train.csv')
df.head(3)

結(jié)果:


image.png

通過查閱資料得知:read_csv和read_table的區(qū)別在于separator分隔符疏魏。

read_csv是逗號分隔值,僅能正確讀入以 “,” 分割的數(shù)據(jù)厅贪。read_table的分隔符是tab蠢护。如果想讓pd.read_csv()和pd.read_table()打印的效果一樣,可以通過參數(shù)(sep或delimiter)設置區(qū)分符养涮。

df=pd.read_table('train.tsv',sep=',')
df.head(4)

結(jié)果:


image.png

1.1.3 每1000行為一個數(shù)據(jù)模塊葵硕,逐塊讀取

chunker=pd.read_csv('train.csv',chunksize=1000)
image.png

結(jié)論:當文件太大時,可用chunksize指定大小逐塊讀取文件贯吓,返回的是一個可迭代的對象TextFileReader

1.1.4 :將表頭改成中文酌壕,索引改為乘客ID [對于某些英文資料,我們可以通過翻譯來更直觀的熟悉我們的數(shù)據(jù)

df=pd.read_csv('train.csv',names=['乘客ID','是否幸存','乘客等級','乘客姓名','性別','年齡','堂兄弟/妹個數(shù)','父母與小孩個數(shù)','船票信息','票價','客艙','登船港口'],index_col=0,header=0)
df.head()

結(jié)果:

image.png

1.2 初步觀察

1.2.1 查看數(shù)據(jù)的基本信息

df.info()

結(jié)果:

image.png

1.2.2 觀察表格前10行的數(shù)據(jù)和后15行的數(shù)據(jù)

(1)表格前10行的數(shù)據(jù)


df.head(10)
image.png

表格后15行的數(shù)據(jù)

df.tail(15)
image.png

1.2.4 判斷數(shù)據(jù)是否為空驻售,為空的地方返回True矢空,其余地方返回False

df.isnull().head()
image.png

1.3 保存數(shù)據(jù)

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

df.to_csv('train_chinese.csv')

結(jié)果:

image.png

2 數(shù)據(jù)載入及初步觀察

2.1.1 任務一:pandas中有兩個數(shù)據(jù)類型DataFrame和Series爬舰,通過查找簡單了解他們们陆。然后自己寫一個關于這兩個數(shù)據(jù)類型的小例子

(1)Series相當于數(shù)組numpy.array類似

import pandas as df
array=df.Series([1,2,3,4,5])

結(jié)果:

image.png

(2) DataFrame相當于有表格,有行表頭和列表頭

import numpy as np
import pandas as df
array=df.DataFrame(np.random.rand(4,5),index=list("ABCD"),columns=list('abcde'))

結(jié)果

image.png

2.1.2 載入"train.csv"文件

import numpy as np
import pandas as pd
df = pd.read_csv('train.csv')

結(jié)果

image.png

2.1.3 查看DataFrame數(shù)據(jù)的每列的項

df.columns

結(jié)果:

image.png

2.1.4 查看"cabin"這列的項

(1)

df['Cabin'].head()

image.png

(2)

df.Cabin.head()
image.png

2.1.5 加載文件"test_1.csv"情屹,然后對比"train.csv"坪仇,看看有哪些多出的列,然后將多出的列刪除


test_1 = pd.read_csv('test_1.csv')
test_1.head()

結(jié)果

image.png

刪除多出列

del test_1['a']
test_1.head()

結(jié)果

2.1.6 將['PassengerId','Name','Age','Ticket']這幾個列元素隱藏垃你,只觀察其他幾個列元素

df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)
image.png

2.2 篩選的邏輯

2.2.1 我們以"Age"為篩選條件椅文,顯示年齡在10歲以下的乘客信息。

df[df["Age"]<10].head()

結(jié)果

image.png

2.2.2 以"Age"為條件惜颇,將年齡在10歲以上和50歲以下的乘客信息顯示出來皆刺,并將這個數(shù)據(jù)命名為midage

midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(3)

結(jié)果

image.png

2.2.3 將midage的數(shù)據(jù)中第100行的"Pclass"和"Sex"的數(shù)據(jù)顯示出來

midage = midage.reset_index(drop=True)
midage.head(3)
midage.loc[[100],['Pclass','Sex']]

結(jié)果

image.png

2.2.4:使用loc方法將midage的數(shù)據(jù)中第100,105凌摄,108行的"Pclass"羡蛾,"Name"和"Sex"的數(shù)據(jù)顯示出來

midage.loc[[100,105,108],['Pclass','Name','Sex']] 

結(jié)果

2.2.5使用iloc方法將midage的數(shù)據(jù)中第100,105望伦,108行的"Pclass"林说,"Name"和"Sex"的數(shù)據(jù)顯示出來

midage.iloc[[100,105,108],[2,3,4]]
image.png

3 探索性數(shù)據(jù)分析

3.1.1 :利用Pandas對示例數(shù)據(jù)進行排序,要求升序

text = pd.read_csv('train_chinese.csv')
text.head()
frame = pd.DataFrame(np.arange(8).reshape((2, 4)), 
                     index=['2', '1'], 
                     columns=['d', 'a', 'b', 'c'])
image.png

3.1.2:對泰坦尼克號數(shù)據(jù)(trian.csv)按票價和年齡兩列進行綜合排序(降序排列)

text.sort_values(by=['票價', '年齡'], ascending=False).head(3)
image.png

3.1.3利用Pandas進行算術計算屯伞,計算兩個DataFrame數(shù)據(jù)相加結(jié)果

frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
                     columns=['a', 'b', 'c'],
                     index=['one', 'two', 'three'])
frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
                     columns=['a', 'e', 'c'],
                     index=['first', 'one', 'two', 'second'])
frame1_a
frame1_b
frame1_a+frame1_b
image.png

3.1.4通過泰坦尼克號數(shù)據(jù)如何計算出在船上最大的家族有多少人

text = pd.read_csv('train_chinese.csv')
text.sort_values(by=['堂兄弟/妹個數(shù)','父母與小孩個數(shù)'],ascending=False).head()
text.sort_values(by=['父母與小孩個數(shù)','堂兄弟/妹個數(shù)'],ascending=False).head()
image.png

image.png

3.1.5:學會使用Pandas describe()函數(shù)查看數(shù)據(jù)基本統(tǒng)計信息

frame2 = pd.DataFrame([[1.4, np.nan], 
                       [7.1, -4.5],
                       [np.nan, np.nan], 
                       [0.75, -1.3]
                      ], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
frame2.describe()
frame2.describe()

3.1.6:分別看看泰坦尼克號數(shù)據(jù)集中 票價腿箩、父母子女 這列數(shù)據(jù)的基本統(tǒng)計數(shù)據(jù),你能發(fā)現(xiàn)什么劣摇?

text['父母與小孩個數(shù)'].describe()
image.png
count : 樣本數(shù)據(jù)大小
mean : 樣本數(shù)據(jù)的平均值
std : 樣本數(shù)據(jù)的標準差
min : 樣本數(shù)據(jù)的最小值
25% : 樣本數(shù)據(jù)25%的時候的值
50% : 樣本數(shù)據(jù)50%的時候的值
75% : 樣本數(shù)據(jù)75%的時候的值
max : 樣本數(shù)據(jù)的最大值
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珠移,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钧惧,老刑警劉巖暇韧,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浓瞪,居然都是意外死亡懈玻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門乾颁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涂乌,“玉大人,你說我怎么就攤上這事英岭⊥搴校” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵诅妹,是天一觀的道長罚勾。 經(jīng)常有香客問我,道長吭狡,這世上最難降的妖魔是什么尖殃? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮划煮,結(jié)果婚禮上分衫,老公的妹妹穿的比我還像新娘。我一直安慰自己般此,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布牵现。 她就那樣靜靜地躺著铐懊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞎疼。 梳的紋絲不亂的頭發(fā)上科乎,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音贼急,去河邊找鬼茅茂。 笑死,一個胖子當著我的面吹牛太抓,可吹牛的內(nèi)容都是我干的空闲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼走敌,長吁一口氣:“原來是場噩夢啊……” “哼碴倾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤跌榔,失蹤者是張志新(化名)和其女友劉穎异雁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僧须,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡纲刀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了担平。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡驱闷,死狀恐怖耻台,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情空另,我是刑警寧澤盆耽,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站扼菠,受9級特大地震影響摄杂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜循榆,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一析恢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秧饮,春花似錦映挂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泼各,卻和暖如春鞍时,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扣蜻。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工逆巍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莽使。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓锐极,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芳肌。 傳聞我的和親對象是個殘疾皇子溪烤,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容