環境: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
name:如果沒有表頭, 可用此參數傳入列表做表頭
header:指定數據表的表頭,默認值為0, 即將第一行作為表頭
index_col:用作行索引的列編號或者列名,如果給定一個序列則有多個行索引。一般可以設定index_col=False指的是pandas不適用第一列作為行索引。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)
大家具體可以參考官網提供的API:http://pandas.pydata.org/pand...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43190.html
近期碰到這樣的一種業務需求創建一個程序流程有簡單的查詢入口完成Excel的查看與形成,今日教給大家運用Python制作當地Excel的查看與形成程序流程,感興趣的小伙伴來了解一下吧一起了解一下吧 序言 今日教給大家運用Python制作當地Excel的查看與形成程序流程 要求 創建一個程序流程有簡單的查詢入口完成Excel的查看與形成 實驗步驟 1開啟一個exe彈出來一種頁面 2有...
摘要:今天要分享的是,用來寫。數據處理環節效率低下,易受干擾。問題排查難以溯源。一旦數據報告有誤,想要定位問題所在,常常需要從頭開始復盤。結果和上面結果結構是一致的。這是官網的文檔,但是卻不完全適用目前的場景。 大毛 豈安科技業務風險分析師 多年訂單業務反欺詐經驗,負責豈安科技多款產品運營工作。 上回筆者分享過一些 pandas 的常用數據查詢語法,但是數據查詢對于 pandas 而言只是冰...
摘要:今天要分享的是,用來寫。數據處理環節效率低下,易受干擾。問題排查難以溯源。一旦數據報告有誤,想要定位問題所在,常常需要從頭開始復盤。結果和上面結果結構是一致的。這是官網的文檔,但是卻不完全適用目前的場景。 大毛 豈安科技業務風險分析師 多年訂單業務反欺詐經驗,負責豈安科技多款產品運營工作。 上回筆者分享過一些 pandas 的常用數據查詢語法,但是數據查詢對于 pandas 而言只是冰...
為什么你需要pandas 大家好,今天想和大家分享一下有關pandas的學習新的,我因工作需要,從去年12月開始接觸這個非常好用的包,到現在為止也是算是熟悉了一些,因此發現了它的強大之處,特意想要和朋友們分享,特別是如果你每天和excel打交道,總是需要編寫一些vba函數或者對行列進行groupby啊,merge,join啊之類的,相信我,pandas會讓你解脫的。 好啦,閑話少說,這篇文章的基礎...
閱讀 2312·2021-11-15 11:38
閱讀 2440·2021-11-15 11:37
閱讀 2543·2021-08-24 10:00
閱讀 2901·2019-08-30 15:56
閱讀 1260·2019-08-30 15:53
閱讀 3695·2019-08-29 18:43
閱讀 2930·2019-08-29 17:01
閱讀 3255·2019-08-29 16:25