• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    教你用Python实现Excel表格处理

    一、文件

    一个测试有两个sheet页的Excel测试文件 test.xlsx

    二、代码

    import pandas as pd
    
    file1 = pd.ExcelFile('D:\\data\\py\\test.xlsx')
    file2 = pd.read_excel('D:\\data\\py\\test.xlsx')
    print(file)
    pandas.io.excel._base.ExcelFile object at 0x0000021DE525DF88>
    -----------------分割线---------------------
       姓名  年龄 性别  住址
    0  张三   7  男 NaN
    1  李四   6  男 NaN
    2  王芳   6  女 NaN
    
    

    三、分析

    pd.read_excel读出来是一个dataframe可以直接打印出内容,但是只能读取一个sheet页,默认第一个sheet页

    @Appender(_read_excel_doc)
    @deprecate_kwarg("skip_footer", "skipfooter")
    def 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,
        keep_default_na=True,
        verbose=False,
        parse_dates=False,
        date_parser=None,
        thousands=None,
        comment=None,
        skip_footer=0,
        skipfooter=0,
        convert_float=True,
        mangle_dupe_cols=True,
        **kwds
    ):
    
        for arg in ("sheet", "sheetname", "parse_cols"):
            if arg in kwds:
                raise TypeError(
                    "read_excel() got an unexpected keyword argument " "`{}`".format(arg)
                )
    
        if not isinstance(io, ExcelFile):
            io = ExcelFile(io, engine=engine)
        elif engine and engine != io.engine:
            raise ValueError(
                "Engine should not be specified when passing "
                "an ExcelFile - ExcelFile already has the engine set"
            )
    
        return io.parse(
            sheet_name=sheet_name,
            header=header,
            names=names,
            index_col=index_col,
            usecols=usecols,
            squeeze=squeeze,
            dtype=dtype,
            converters=converters,
            true_values=true_values,
            false_values=false_values,
            skiprows=skiprows,
            nrows=nrows,
            na_values=na_values,
            keep_default_na=keep_default_na,
            verbose=verbose,
            parse_dates=parse_dates,
            date_parser=date_parser,
            thousands=thousands,
            comment=comment,
            skipfooter=skipfooter,
            convert_float=convert_float,
            mangle_dupe_cols=mangle_dupe_cols,
            **kwds
        )
    
    

    pd.ExcelFile 返回值是一个Excel对象,不能直接用,但是可以读取整个Excel内容

    四、pd.ExcelFile

    file = pd.ExcelFile('D:\\data\\py\\test.xlsx')

    sheet页名称

    print(file.sheet_names)
    ['一年级', '二年级']

    遍历读取每个sheet页的内容

    for name in file.sheet_names:
        _df = pd.read_excel(file,name)
        print(_df)
    
      姓名  年龄 性别  住址
    0  张三   7  男 NaN
    1  李四   6  男 NaN
    2  王芳   6  女 NaN
       姓名  年龄 性别
    0  李明   8  男
    1  刘敏   8  女
    2  张强   7  男

    将两个sheet页的内容合并,并添加一列内容为sheet页名称

    df_list=[]
    for name in file.sheet_names:
        _df = pd.read_excel(file,name)
        _df['班级']=name
        df_list.append(_df)
    df = pd.concat([_df for _df in df_list],sort=False)
    print(df)
    
    姓名  年龄 性别  住址   班级
    0  张三   7  男 NaN  一年级
    1  李四   6  男 NaN  一年级
    2  王芳   6  女 NaN  一年级
    0  李明   8  男 NaN  二年级
    1  刘敏   8  女 NaN  二年级
    2  张强   7  男 NaN  二年级
    

    忽略掉原来的index

    df = pd.concat([_df for _df in df_list],ignore_index=True,sort=False)
    print(df)
    姓名  年龄 性别  住址   班级
    0  张三   7  男 NaN  一年级
    1  李四   6  男 NaN  一年级
    2  王芳   6  女 NaN  一年级
    3  李明   8  男 NaN  二年级
    4  刘敏   8  女 NaN  二年级
    5  张强   7  男 NaN  二年级
    

    修改列名为英文

    df = df.rename(columns={'姓名': 'name', '年龄': 'age', '性别': 'sex', '住址': 'address', '班级': 'class'})
    print(df)
    name  age sex  address class
    0   张三    7   男      NaN   一年级
    1   李四    6   男      NaN   一年级
    2   王芳    6   女      NaN   一年级
    3   李明    8   男      NaN   二年级
    4   刘敏    8   女      NaN   二年级
    5   张强    7   男      NaN   二年级
    

    将df保存为CSV、Excel文件

    df.to_csv('../data/sheet合并.csv',index=False) 
    df.to_excel('../data/sheet合并.xls',index=True) 

    五、总结

    可以发现Python读写Excel文件还是很方便的!

    /python/blob/master/data/sheet%E5%90%88%E5%B9%B6.xls)

    df.to_csv('../data/sheet合并.csv',index=False) 
    df.to_excel('../data/sheet合并.xls',index=True) 

    到此这篇关于教你用Python实现Excel表格处理的文章就介绍到这了,更多相关Python处理Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python读写Excel表格的方法
    • python 删除excel表格重复行,数据预处理操作
    • Python使用OpenPyXL处理Excel表格
    • 如何用python处理excel表格
    • Python编程快速上手——Excel表格创建乘法表案例分析
    • Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
    上一篇:在import scipy.misc 后找不到 imsave的解决方案
    下一篇:Python中移除List重复项的五种方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    教你用Python实现Excel表格处理 教,你用,Python,实现,Excel,