日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Datawhale学习记录 动手学数据分析(以Kaggle泰坦尼克号为案例)——Task01数据加载及探索性数据分析

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Datawhale学习记录 动手学数据分析(以Kaggle泰坦尼克号为案例)——Task01数据加载及探索性数据分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IDE:Jupyter notebook

一、數據載入及初步觀察

1.數據加載

1.1載入數據(使用相對路徑和絕對路徑)

1.1.1導入numpy和pandas

import numpy as np import pandas as pd import os #導入的os在查看絕對路徑時會用到

1.1.2載入數據

相對路徑與絕對路徑

df = pd.read_csv('train.csv') #相對路徑 path=os.path.abspath('train.csv') #絕對路徑 path #輸出為:'C:\\Users\\DELL\\Desktop\\train.csv'

用pd.read_csv方法加載數據:

df = pd.read_csv(path) df.head(3) '''官方文檔:pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None ……)參數巨多 所以省略了'''

結果:

注:pd.read_csv與pd.read_table 的區別和聯系
先看看table的輸出,并與上文的csv的輸出對比:

df = pd.read_table(path)

輸出:

查閱官方文檔發現,這種差別是由于pd.read_csv的參數sep默認為’ , ',說明以逗號為分隔符讀取;而pd.read_table的sep參數默認為‘ \t ’ (tab-stop),說明以制表符為分隔符讀取。
將pd.read_table的sep改成 sep=’ , ',即可實現與csv同樣的輸出結果,如下:

pd.read_table(path,sep=',').head()

輸出:

1.1.3 任務三:每1000行為一個數據模塊,逐塊讀取

1.什么時候需要逐塊讀取?
當需要讀取的文件過大時,為了避免一次讀取的數據量過多而導致內存崩潰,pandas支持按指定數量的行讀取,即chunksize。

chunker = pd.read_csv('train.csv',sep=',',chunksize=100) type(chunker)

結果:

數據類型為TextFileReader而不是DataFrame,
可用for循環打印其中內容驗證:

for chunk in chunker:print(chunk)

1.1.4 任務四:將表頭改成中文,索引改為乘客ID [對于某些英文資料,我們可以通過翻譯來更直觀的熟悉我們的數據]

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

結果:

注:幾個參數的解釋:
1.參數header指定要用作列名的行號,以及數據的開頭; 1.如果未傳遞任何名,則行為與header=0相同,并且從文件的第一行推斷列名; 2.如果顯式傳遞列名,則行為與header=None相同。顯式傳遞header=0,以便能夠 替換 現有名稱。

2.參數names: 指定要使用的列名列表。如果文件包含標題行,則應顯式傳遞header=0以覆蓋列名。此列表中不允許重復。

3.參數index_col: 指定要用作DataFrame行標簽的列,以字符串名稱或列索引的形式給出。如果給定int/str序列,則使用多索引。 注意:index_col=False可用于強制pandas不使用第一列作為索引,例如,當您有一個格式錯誤的文件,每行末尾都有分隔符時。

1.2 初步觀察

導入數據后,你可能要對數據的整體結構和樣例進行概覽,比如說,數據大小、有多少列,各列都是什么格式的,是否包含null等

1.2.1 任務一:查看數據的基本信息

df.info()

1.2.2 任務二:觀察表格前10行的數據和后15行的數據

#前十行 df.head(10)

#后15行 df.tail(15)

1.2.3 任務三:判斷數據是否為空,為空的地方返回True,其余地方返回False

df.isnull().head()

1.3 保存數據

1.3.1 任務一:將你加載并做出改變的數據,在工作目錄下保存為一個新文件train_chinese.csv

df.to_csv('train_chinese.csv')

總結

以上是生活随笔為你收集整理的Datawhale学习记录 动手学数据分析(以Kaggle泰坦尼克号为案例)——Task01数据加载及探索性数据分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。