Python使用pandas讀取Excel檔案資料和預處理小案例
假設有Excel檔案data.xlsx,其中內容為
現在需要將這個Excel檔案中的資料讀入pandas,並且在後續的處理中不關心ID列,還需要把sex列的female替換為1,把sex列的male替換為0。本文演示有關的幾個操作。
(1)匯入pandas模組
>>> import pandas as pd
(2)把Excel檔案中的資料讀入pandas
>>> df = pd.read_excel('data.xlsx')
>>> df
ID age height sex weight
張三 1 39 181 female 85
李四 2 40 180 male 80
王五 3 38 178 female 78
趙六 4 59 170 male 66
(3)刪除ID列
可以得到新的DataFrame:
>>> df.drop('ID', axis=1)
age height sex weight
張三 39 181 female 85
李四 40 180 male 80
王五 38 178 female 78
趙六 59 170 male 66
也可以直接在原DataFrame上原地刪除:
>>> df.drop('ID', axis=1, inplace=True)
>>> df
age height sex weight
張三 39 181 female 85
李四 40 180 male 80
王五 38 178 female 78
趙六 59 170 male 66
(4)替換sex列
方法一:使用replace()方法替換sex列,得到新的DataFrame,如果指定引數inplace=True,則可以原地替換。
>>> df.replace({'female':1,
'male':0})
age height sex weight
張三 39 181 1 85
李四 40 180 0 80
王五 38 178 1 78
趙六 59 170 0 66
方法二:使用map()方法+lambda表示式,原地替換。
>>> df1 = df[:]
>>> df1['sex'
>>> df1
age height sex weight
張三 39 181 1 85
李四 40 180 0 80
王五 38 178 1 78
趙六 59 170 0 66
方法三:使用map()方法+字典,原地替換。
>>> df1 = df[:]
>>> df1['sex'] = df1['sex'].map({'female':1,
'male':0})
>>> df1
age height sex weight
張三 39 181 1 85
李四 40 180 0 80
王五 38 178 1 78
趙六 59 170 0 66
方法四:使用loc類,原地替換。
>>> df1 = df[:]
>>> df1.loc[df['sex']=='female',
'sex'] = 1
>>> df1.loc[df['sex']=='male',
'sex'] = 0
>>> df1
age height sex weight
張三 39 181 1 85
李四 40 180 0 80
王五 38 178 1 78
趙六 59 170 0 66
---------相關閱讀------------
明天火車回老家幫忙掰玉米,順便陪老人過箇中秋節,老家沒有網路,預計3天不更新,大家可以閱讀下面的有關文章,或者進入公眾號選單“最新資源”==>“歷史文章分類速查表”閱讀更多文章。提前祝朋友們中秋節快樂!
----------喜大普奔----------
1、繼《Python程式設計基礎》(2017年9月第5次印刷)、《Python程式設計(第2版)》(2017年9月第4次印刷)、《Python可以這樣學》(2017年7月第3次印刷)系列圖書之後,董付國老師新書《Python程式設計開發寶典》已於2017年8月1日在清華大學出版社出版,並於2017年9月進行了第2次印刷。為慶祝新書《Python程式設計開發寶典》全面上架,清華大學出版社聯合“贛江圖書專營”淘寶店推出特價優惠活動,《Python程式設計開發寶典》原價69元,新書上架期間超低價39.8元,可以複製下面的連結使用瀏覽器開啟檢視圖書詳情和購買:
https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3