您好,登錄后才能下訂單哦!
使用Pandas怎么讀取excel?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
首先可以先創建一個excel文件當作實驗數據,名稱為example.xlsx,內容如下:
name | age | gender |
---|---|---|
John | 30 | male |
Mary | 22 | female |
Smith | 32 | male |
這里是很簡單的幾行數據,我們來用pandas實際操作一下這個excel表。
# coding:utf-8 import pandas as pd data = pd.read_excel('example.xlsx', sheet_name='Sheet1') print data
結果如下:
這里使用了read_excel()方法來讀取excel,來看一個read_excel()這個方法的API,這里只截選一部分經常使用的參數:
pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)
這里主要參數為io,sheet_name,header,usecols和names
io:excel文件,如果命名為中文,在python2.7中,需要使用decode()來解碼成unicode字符串,例如: pd.read_excel('示例'.decode('utf-8))
sheet_name:返回指定的sheet,如果將sheet_name指定為None,則返回全表,如果需要返回多個表,可以將sheet_name指定為一個列表,例如['sheet1', 'sheet2']
header:指定數據表的表頭,默認值為0,即將第一行作為表頭。
usecols:讀取指定的列,例如想要讀取第一列和第二列數據:
pd.read_excel("example.xlsx", sheet_name=None, usecols=[0, 1])
這里先來一個在機器學習中經常使用的:將所有gender為male的值改為0,female改為1。
# coding:utf-8 import pandas as pd from pandas import DataFrame # 讀取文件 data = pd.read_excel("example.xlsx", sheet_name="Sheet1") # 找到gender這一列,再在這一列中進行比較 data['gender'][data['gender'] == 'male'] = 0 data['gender'][data['gender'] == 'female'] = 1 print data
結果如下:
需要注意的是,這里的data為excel數據的一份拷貝,對data進行修改并不會直接影響到我們原來的excel,必須在修改后保存才能夠修改excel。保存的代碼如下:
DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)
這時候我們再打開example.xlsx文件看看是否更改了:
如果我們想要新增加一列或者一行數據怎么辦呢?這里給出參考:
新增列數據:
data['列名稱'] = None
新增行數據,這里行的num為excel中自動給行加的id數值
data.loc[行的num] = [值1, 值2, ...]
以上面的數據為例:
# coding:utf-8 import pandas as pd from pandas import DataFrame data = pd.read_excel("example.xlsx", sheet_name='Sheet1') # 增加行數據,在第5行新增 data.loc[5] = ['James', 32, 'male'] # 增加列數據,給定默認值None data['profession'] = None # 保存數據 DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)
打開excel看到的結果如下:
說完了增加一行或一列,那怎樣刪除一行或一列呢?
import pandas as pd from pandas import DataFrame data = pd.read_excel("example.xlsx", sheet_name='Sheet1') # 刪除gender列,需要指定axis為1,當刪除行時,axis為0 data = data.drop('gender', axis=1) # 刪除第3,4行,這里下表以0開始,并且標題行不算在類 data = data.drop([2, 3], axis=0) # 保存 DataFrame(data).to_excel('example.xlsx', sheet_name='Sheet1', index=False, header=True)
這時候打開excel可以看見gender列和除標題行的第3,4行被刪除了。
看完上述內容,你們掌握使用Pandas怎么讀取excel的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。