pandas操作excel的基礎知識
阿新 • • 發佈:2022-03-21
pandas操作excel的基礎知識
- pandas有兩個主要的資料結構,一個是Series,另一個是DataFrame。
- Series一種增強的一維陣列,類似於列表,由索引(index)和值(values)組成。
- DataFrame是一個類似表格的二維資料結構,索引包括列索引和行索引,每列可以是不同的值型別(數值、字串、布林值等)。DataFrame的每一行和每一列都是一個Series
pandas讀取excel
pandas.read_excel(filename, sep, header,encoding) #各個引數解釋 """ filename:檔案路徑,可以設定為絕對路徑或相對路徑 sep:分隔符,常用的有逗號 , 分隔、\t 分隔,預設逗號分隔,read_table預設是'\t'(也就是tab)切割資料集的 header:指定表頭,即列名,預設第一行,header = None, 沒有表頭,全部為資料內容 encoding:檔案編碼方式,不設定此選項, Pandas 預設使用 UTF-8 來解碼。 index_col ,指定索引對應的列為資料框的行標籤,預設 Pandas 會從 0、1、2、3 做自然排序分配給各條記錄。 """ import pandas as pd path = r"C:\Users\lenovo\Desktop\pandas實驗資料.xlsx" #讀取檔案資訊 result = pd.read_excel(path) print(result) #指定第一列為行索引 result = pd.read_excel(path,index_col=0) # 預設讀取第一個sheet,讀取第2個sheet如下 result = pd.read_excel(path,index_col=0,sheet_name=1) #讀取某一列名 getinput = pd.read_excel('表路徑',usecols=['Loadcase']) #Loadcase列名 # 檢視指定前幾行,預設前5行,指定行數寫小括號裡 result = pd.read_excel(path) print(result.head()) # 檢視資料的(行數、列數) print(result.shape) # 檢視列索引列表 print(result.columns.values) # # # 檢視行索引列表 print(result.index.values)
pandas寫入excel
import pandas as pd from pandas import DataFrame #需要注意的是,當檔案開啟的時候是寫不進去的 #**往檔案中直接寫入資料** path = r"C:\Users\lenovo\Desktop\pandas實驗資料.xlsx" result = pd.DataFrame({'序號':[1,2,3],'姓名':['張三','李四','王五']})#資料為字典格式 result.to_excel(path,index=0) #index為行名索引,預設為True #**或者這樣寫,即先把資料封裝在一起** dic1 = {'標題列1': ['張三','李四'], '標題列2': [80, 90]} df = pd.DataFrame(dic1) #先將資料轉換為DataFrame格式 df.to_excel(path, index=0,sheet_name="a") #再將資料寫入excel中,同時可定義sheet的檔名 #**當同時寫入多個sheet,以解決後面將前面的sheet覆蓋的問題** dic1 = {'標題列1': ['張三','李四'], '標題列2': [80, 90]} dic2 = {'標題列3': ['王五','趙六'], '標題列4': [100, 110]} dic3 = {'標題列5': ['孫七','周八'], '標題列6': [120, 130]} df1 = pd.DataFrame(dic1) #先將其轉換為DF格式 df2 = pd.DataFrame(dic2) df3 = pd.DataFrame(dic3) #需要先生成一個excel檔案 df1.to_excel("text.xlsx",index=1,sheet_name="a") #index :布林,預設的Ture,寫行名(索引) writer = pd.ExcelWriter(r"text.xlsx",mode= "a",engine= "openpyxl") #例項化ExcelWriter,其實我覺得直接放一個xlwt的檔案路徑也是沒問題的 df2.to_excel(writer,index=1,sheet_name="b") df3.to_excel(writer,index=1,sheet_name="c") writer.save() writer.close() #**覆蓋一個已經存在的sheet** wb = writer.book print(wb.sheetnames) #檢視已存在的sheet的名字 wb.remove(wb["a"]) #刪除sheet a writer = pd.ExcelWriter(r"text.xlsx",mode= "a",engine= "openpyxl") #例項化ExcelWriter df = pd.DataFrame({"name": ["夏色祭", "白上吹雪"]}) df.to_excel(writer, index=True, sheet_name="a") writer.save() writer.close()