Excel 是由微軟公司開發的辦公軟件之一,它在日常工作中得到了廣泛的應用。在數據量較少的情況下,Excel 對於數據的處理、分析、可視化有其獨特的優勢,因此可以顯著提升您的工作效率。但是,當數據量非常大時,Excel 的劣勢就暴露出來了,比如,操作重復、數據分析難等問題。Pandas 提供了操作 Excel 文件的函數,可以很方便地處理 Excel 表格。
如果想要把單個對象寫入 Excel 文件,那么必須指定目標文件名;如果想要寫入到多張工作表中,則需要創建一個帶有目標文件名的
to_ecxel() 語法格式如下:
下面看一組簡單的示例:
圖1:DataFrame轉為Excel
示例如下所示:
輸出結果:
輸出結果:
to_excel()
通過 to_excel() 函數可以將 Dataframe 中的數據寫入到 Excel 文件。如果想要把單個對象寫入 Excel 文件,那么必須指定目標文件名;如果想要寫入到多張工作表中,則需要創建一個帶有目標文件名的
ExcelWriter對象,並通過
sheet_name參數依次指定工作表的名稱。
to_ecxel() 語法格式如下:
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)下表列出函數的常用參數項,如下表所示:
| 參數名稱 | 描述說明 |
|---|---|
| excel_wirter | 文件路徑或者 ExcelWrite 對象。 |
| sheet_name | 指定要寫入數據的工作表名稱。 |
| na_rep | 缺失值的表示形式。 |
| float_format | 它是一個可選參數,用於格式化浮點數字符串。 |
| columns | 指要寫入的列。 |
| header | 寫出每一列的名稱,如果給出的是字符串列表,則表示列的別名。 |
| index | 表示要寫入的索引。 |
| index_label | 引用索引列的列標簽。如果未指定,並且 hearder 和 index 均為為 True,則使用索引名稱。如果 DataFrame 使用 MultiIndex,則需要給出一個序列。 |
| startrow | 初始寫入的行位置,默認值0。表示引用左上角的行單元格來儲存 DataFrame。 |
| startcol | 初始寫入的列位置,默認值0。表示引用左上角的列單元格來儲存 DataFrame。 |
| engine | 它是一個可選參數,用於指定要使用的引擎,可以是 openpyxl 或 xlsxwriter。 |
下面看一組簡單的示例:
- import pandas as pd
- #創建DataFrame數據
- info_website = pd.DataFrame({'name': ['編程幫', 'c語言中文網', '微學苑', '92python'],
- 'rank': [1, 2, 3, 4],
- 'language': ['PHP', 'C', 'PHP','Python' ],
- 'url': ['www.bianchneg.com', 'c.bianchneg.net', 'www.weixueyuan.com','www.92python.com' ]})
- #創建ExcelWrite對象
- writer = pd.ExcelWriter('website.xlsx')
- info_website.to_excel(writer)
- writer.save()
- print('輸出成功')
上述代碼執行后會自動生成 website.xlsx 文件,文件內容如下:
圖1:DataFrame轉為Excel
read_excel()
如果您想讀取 Excel 表格中的數據,可以使用 read_excel() 方法,其語法格式如下:pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None,
usecols=None, squeeze=False,dtype=None, engine=None,
converters=None, true_values=None, false_values=None,
skiprows=None, nrows=None, na_values=None, parse_dates=False,
date_parser=None, thousands=None, comment=None, skipfooter=0,
convert_float=True, **kwds) 下表對常用參數做了說明:
| 參數名稱 | 說明 |
|---|---|
| io | 表示 Excel 文件的存儲路徑。 |
| sheet_name | 要讀取的工作表名稱。 |
| header | 指定作為列名的行,默認0,即取第一行的值為列名;若數據不包含列名,則設定 header = None。若將其設置 為 header=2,則表示將前兩行作為多重索引。 |
| names | 一般適用於Excel缺少列名,或者需要重新定義列名的情況;names的長度必須等於Excel表格列的長度,否則會報錯。 |
| index_col | 用做行索引的列,可以是工作表的列名稱,如 index_col = '列名',也可以是整數或者列表。 |
| usecols | int或list類型,默認為None,表示需要讀取所有列。 |
| squeeze | boolean,默認為False,如果解析的數據只包含一列,則返回一個Series。 |
| converters | 規定每一列的數據類型。 |
| skiprows | 接受一個列表,表示跳過指定行數的數據,從頭部第一行開始。 |
| nrows | 需要讀取的行數。 |
| skipfooter | 接受一個列表,省略指定行數的數據,從尾部最后一行開始。 |
示例如下所示:
- import pandas as pd
- #讀取excel數據
- df = pd.read_excel('website.xlsx',index_col='name',skiprows=[2])
- #處理未命名列
- df.columns = df.columns.str.replace('Unnamed.*', 'col_label')
- print(df)
col_label rank language agelimit name 編程幫 0 1 PHP www.bianchneg.com 微學苑 2 3 PHP www.weixueyuan.com 92python 3 4 Python www.92python.com再看一組示例:
- import pandas as pd
- #讀取excel數據
- #index_col選擇前兩列作為索引列
- #選擇前三列數據,name列作為行索引
- df = pd.read_excel('website.xlsx',index_col='name',index_col=[0,1],usecols=[1,2,3])
- #處理未命名列,固定用法
- df.columns = df.columns.str.replace('Unnamed.*', 'col_label')
- print(df)
language name rank 編程幫 1 PHP c語言中文網 2 C 微學苑 3 PHP 92python 4 Python
