這篇文章帶給大家的內容是關於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') >>> # 返回的是相同的 DataFrame
header:指定資料表的表頭,預設值為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
, 右為True
header:預設為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)
以上是Python中Pandas讀取修改excel操作攻略(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!