本篇文章給大家帶來的内容是關于Python中Pandas讀取修改excel操作攻略(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
環境:python 3.6.8
以某米賽爾号舉個例子吧:
>>> pd.read_excel('1.xlsx', sheet_name='Sheet2')
名字 等級 屬性1 屬性2 天賦
0 四九幻曦 100 自然 None 21
1 聖甲狂戰 100 戰鬥 None 0
2 時空界皇 100 光 次元 27
我們在這裡使用了pd.read_excel()函數來讀取excel,來看一下read_excel()這個方法的API,這裡隻截選一部分經常使用的參數:pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)io:很明顯, 是excel檔案的路徑+名字字元串
(有中文的話python2的老鐵需要使用decode()來解碼成unicode字元串)
例如:>>> pd.read_excel('例子'.decode('utf-8))sheet_name:傳回指定的sheet
如果将sheet_name指定為None,則傳回全表
如果需要傳回多個表, 可以将sheet_name指定為一個清單, 例如['sheet1', 'sheet2']
可以根據sheet的名字字元串或索引來值指定所要選取的sheet>>> # 如:
>>> pd.read_excel('1.xlsx', sheet_name=0)
>>> pd.read_excel('1.xlsx', sheet_name='Sheet1')
>>> # 傳回的是相同的 DataFrameheader:指定資料表的表頭,預設值為0, 即将第一行作為表頭usecols:讀取指定的列, 也可以通過名字或索引值>>> # 如:
>>> pd.read_excel('1.xlsx', sheet_name=1, usecols=['等級', '屬性1'])
>>> pd.read_excel('1.xlsx', sheet_name=1, usecols=[1,2])
>>> # 傳回的是相同的 DataFrame
直到某一天泰格爾升了一級, 可以這樣改一下, 當然用.iloc或.loc對象都可以>>> # 讀取檔案
>>> data = pd.read_excel("1.xlsx", sheet_name="Sheet1")
>>> # 找到 等級 這一列,再在這一列中進行比較
>>> data['等級'][data['名字'] == '泰格爾'] += 1
>>> print(data)
LOOK!他更新了!!>>> data
名字 等級 屬性1 屬性2 天賦
0 艾歐裡娅 100 自然 冰 29
1 泰格爾 81 電 戰鬥 16
2 布魯克克 100 水 None 28
現在我們将它儲存data.to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)index:預設為True, 是否加行索引, 直接上圖吧!
左為False, 右為Trueheader:預設為True, 是否加列标, 上圖吧!
左為False, 右為True而io, sheet_name參數用法同函數pd.read_excel()
如果我們多捕捉幾隻或者多加幾種屬性怎麼辦呢?這裡給出參考:新增列資料:
data['列名稱'] = [值1, 值2, ......]>>> data['特性'] = ['瞬殺', 'None', '炎火']
>>> data
名字 等級 屬性1 屬性2 天賦 特性
0 艾歐裡娅 100 自然 冰 29 瞬殺
1 泰格爾 80 電 戰鬥 16 None
2 布魯克克 100 水 None 28 炎火
新增行資料,這裡行的num為excel中自動給行加的id數值
data.loc[行的num] = [值1, 值2, ...], (注意與.iloc的差別)>>> data.loc[3] = ['小火猴', 1, '火', 'None', 31, 'None']
>>> data
名字 等級 屬性1 屬性2 天賦 特性
0 艾歐裡娅 100 自然 冰 29 瞬殺
1 泰格爾 80 電 戰鬥 16 None
2 布魯克克 100 水 None 28 炎火
3 小火猴 1 火 None 31 None
說完了增加一行或一列,那怎樣删除一行或一列呢?可以使用.drop()函數>>> # 删除列, 需要指定axis為1,當删除行時,axis為0
>>> data = data.drop('屬性1', axis=1) # 删除`屬性1`列
>>> data
名字 等級 屬性2 天賦 特性
0 艾歐裡娅 100 冰 29 瞬殺
1 泰格爾 80 戰鬥 16 None
2 布魯克克 100 None 28 炎火
3 小火猴 1 None 31 None
>>> # 删除第3,4行,這裡下表以0開始,并且标題行不算在類, axis用法同上
>>> data = data.drop([2, 3], axis=0)
>>> data
名字 等級 屬性2 天賦 特性
0 艾歐裡娅 100 冰 29 瞬殺
1 泰格爾 80 戰鬥 16 None
>>> # 儲存
>>> data.to_excel('2.xlsx', sheet_name='Sheet1', index=False, header=True)