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的輸出對比:
輸出:
查閱官方文檔發現,這種差別是由于pd.read_csv的參數sep默認為’ , ',說明以逗號為分隔符讀取;而pd.read_table的sep參數默認為‘ \t ’ (tab-stop),說明以制表符為分隔符讀取。
將pd.read_table的sep改成 sep=’ , ',即可實現與csv同樣的輸出結果,如下:
輸出:
1.1.3 任務三:每1000行為一個數據模塊,逐塊讀取
1.什么時候需要逐塊讀取?
當需要讀取的文件過大時,為了避免一次讀取的數據量過多而導致內存崩潰,pandas支持按指定數量的行讀取,即chunksize。
結果:
數據類型為TextFileReader而不是DataFrame,
可用for循環打印其中內容驗證:
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数据加载及探索性数据分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python系列13:python中Pa
- 下一篇: 网站微调是什么意思?能带来什么作用?