Pandas数据的输入与输出: excel文件

excel文件

读取excel文件

使用read_excel()函数实现对excel文件的读取,语法如下:

pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, decimal='.', comment=None, skipfooter=0, convert_float=None, mangle_dupe_cols=True, storage_options=None)

常用参数说明:

  • io:接收任何可接受的字符串路径,文件路径。

  • sheet_name:接收字符串,整数,列表或者None。默认为0。字符串用于工作表名称,整数用于零索引工作表位置(图表工作表不计为工作表位置)。字符串/整数列表用于请求多张工作表,返回的是一个字典。默认0作为DataFrame的第一张工作表。

  • header:接收整数,整数列表,默认0。把第0行作为每列的列标签。如果没有标题,请使用 None。

  • names:接收array_like。如果文件不包含标题行,可以将包含列标签的列表传递给names。

  • index_col:接收整数(列索引),或者整数列表,默认None。使用哪一列作为 DataFrame 的行标签。

  • usecols:接收整数、字符串、类列表,默认为None。使用哪些列。

  • dtype:元素类型,使用字典传入 {‘列名1’: np.float64, ‘列名2’: np.int32}

  • engine:接收字符串,默认None。

    • 如果 io 不是缓冲区或路径,则必须将其设置为标识 io。支持的引擎:“xlrd”、“openpyxl”、“odf”、“pyxlsb”。引擎兼容性:
      • “xlrd”支持旧式 Excel 文件 (.xls)。
      • “openpyxl”支持更新的 Excel 文件格式。
      • “odf”支持 OpenDocument 文件格式(.odf、.ods、.odt)。
      • “pyxlsb”支持二进制 Excel 文件。
    • 如果path_or_buffer是 OpenDocument 格式(.odf、.ods、.odt),使用odf;如果path_or_buffer是 xls 格式,将被使用 xlrd;如果path_or_buffer是 xlsb 格式, 将使用pyxlsb;否则使用openpyxl。
  • nrows:接收整数,默认None。需要读取的行数。

  • na_values:接收标量、字符串、类列表或者字典,默认为None。以下值会被解释为NaN:

    ''、'#N/A'、'#N/AN/A'、'#NA'、'-1.#IND'、'-1.#QNAN'、 '-NaN'、'-nan'、'1.#IND'、'1.#QNAN'、'<NA>'、'N/A'、'NA'、'NULL'、'NaN'、'n /a'、'nan'、'null'
    
  • parse_dates:接收布尔值、类列表或者字典,默认为False。

    • 布尔值。如果是True,尝试解析索引。
    • int 或名称列表。例如,[1, 2, 3]尝试将第 1、2、3 列分别解析为单独的日期列。
    • 二维列表。例如,如果 [[1, 3]] -> 将第 1 列和第 3 列合并,并解析为单个日期列。
    • dict,例如 {‘foo’ : [1, 3]} -> 将第 1、3 列解析为日期并调用结果 ‘foo’
  • date_parser:函数,可选。用于将字符串列序列转换为日期时间实例数组的函数

返回值:

  • DataFrame :来自传入的 Excel 文件的 DataFrame。

示例:

game.xlsx文件如图所示:

在这里插入图片描述

该文件中共有三个表分别为:Sheet1、will、Sheet3,首先读取Sheet1,代码如下:

data = pd.read_excel('game.xlsx', sheet_name=0, index_col='整体销售排名')
data
# sheet_name=0或者sheet_name='Sheet1'都可以
# 将'整体销售排名'列设置为行索引

读取的数据如图:

在这里插入图片描述

也可以同时读取三个表中的数据,代码如下:

data = pd.read_excel('game.xlsx', sheet_name=[0,'will',2])
data

读取的数据被存入在字典中,其中表名为字典的键,表中的数据为值,如图:

'Sheet1’中的数据:

在这里插入图片描述

'will’中的数据:

在这里插入图片描述

'Sheet3’中的数据:

在这里插入图片描述

写入excel文件

使用to_excel()函数将dataframe写入到excel文件中,语法如下:

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, storage_options=None)

常用参数说明:

  • excel_writer:接收文件路径或现有ExcelWriter对象。
  • sheet_name:接收字符串,默认为’Sheet1’。
  • na_rep:接收字符串,默认为’'。缺失值表示。
  • float_format:接收字符串,浮点数的格式字符串。例如:float_format=“%.2f”。
  • columns:接收序列或者字符串列表,需要写入的列。
  • header:接收布尔值,或字符串列表,默认为True。写入列名。
  • index:接收布尔值,默认为True。是否写入行名。
  • index_label:接收字符串或序列。如果需要,可选索引列的列标签。如果未指定,并且 header和index为 True,则使用整数索引。

返回值:

  • 无返回值。

示例:

将读取的加利福尼亚房屋数据存储为excel文件,代码如下:

# 导包
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
housing 

对数据进行处理

# 将数据赋值给变量x
x = housing['data']
# 将数据标签赋值给变量y
y = housing['target'].reshape(-1,1)
# 将feature_names和target_names合并到一个列表中
housing['feature_names'].extend(housing['target_names'])
# 为合并后的housing['feature_names']命名
column = housing['feature_names']
column
# 将数组x和y合并,并且创建DataFrame,将column列表作为df的列名

将数据写入excel文件中

df1.to_excel('california_housing.xlsx', sheet_name='california', index=False)
# 将工作表命名为'california',不设置行索引。

执行外代码后同路径的文件夹中会生成excel文件,文件内容如图:

在这里插入图片描述

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值