pandas處理excel文件和csv文件


一、csv文件

csv以純文本形式存儲表格數據

pd.read_csv('文件名'),可添加參數engine='python',encoding='gbk'

一般來說,windows系統的默認編碼為gbk,可在cmd窗口通過chcp查看活動頁代碼,936即代表gb2312。

例如我的電腦默認編碼時gb2312,pycharm默認是utf-8編碼,csv內存在中文時會出現錯誤,可通過指定engine或編碼格式解決。

 

二、excel文件

之前博客寫過通過xlrd和xlwt讀寫xls文件、通過openpyxl讀寫xlsx文件,而pandas即可處理xls文件、也可處理xlsx文件。

pandas讀取的excel結果為一個DataFrame對象,因此DataFrame的許多方法都會被用到,學習DataFrame   https://www.cnblogs.com/Forever77/p/11209186.html

pd.read_excel('文件名'),默認讀取文件的第一個sheet頁,並將第一行當作column,添加一行從0開始的整數作為index。

常用參數sheet_name='':表示讀取文件的哪個sheet頁,可以為sheet頁名稱,也可以使用數字,0表示第一個sheet頁;None會讀取所有有內容的sheet頁。結果為一個字典,字典的key為sheet頁名稱,value為sheet頁內容;默認讀取第一個sheet頁

index_col:將哪一列當作index列,默認添加一列從0開始的整數作為index,通過指定index_col='列名'指定索引列

header:將哪一行當作表頭,即DataFrame的columns,默認將sheet頁的第一行當作表頭,header=1則將第二行當做表頭

 

假設有一個excel表格內容如下圖1,使用pandas讀取結果分別如下。

import pandas as pd
df = pd.read_excel('fruit.xlsx')
print(df)
print(df.values)
print(df['名稱'])
print(df.loc[1])
print(df.loc[2,'單價/元'])

             

 

①df = pd.read_excel('fruit.xlsx'),表示通過pandas讀取excel並加載為DataFrame,從圖2可以看出如果讀取時不設置索引,pandas會自動生成一列,該列值從0開始,表示行索引。

②圖2中紅框中的部分即為DataFrame的值,可通過df.values獲取,結果如圖3,類似列表的形式,數據類型為<class 'numpy.ndarray'>;

③圖2數據部分有三列,列的名字為第一行的內容,即列索引,可通過df[列名]獲取某一列的內容,結果如圖4所示;

④pandas自動生成的行索引從0開始,可通過pd.loc[n]獲取索引值為n的行的內容,結果如圖5所示;

⑤通過pd.loc[行索引,列索引]可獲取具體單元格的內容,結果如圖6所示。

 

可通過df.set_index(列名)自行設定索引,如下示例

import pandas as pd
df = pd.read_excel('fruit.xlsx')  #也可在讀取時直接設置index_col='名稱'
df = df.set_index('名稱')   #設置名稱列為行索引
print(df)
print(df.values)
print(df['庫存/kg'])
print(df.loc['草莓'])
print(df.loc['香蕉','單價/元'])

 

        

 

將DataFrame格式的數據寫入excel

第一步:writer = pd.ExcelWriter('文件路徑和名稱'),文件名稱必須指定,默認保存在當前文件的相同目錄,文件名稱需包含后綴名且只能為xls或xlsx

第二步:df.to_excel(writer,'sheet頁名稱'),sheet頁參數可不指定,默認為Sheet1

第三步:writer.save()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM