美文网首页
关于pandas写入excel不同sheet的方法

关于pandas写入excel不同sheet的方法

作者: 那年的茶馆 | 来源:发表于2018-06-08 14:41 被阅读0次

    学习笔记

    需求:根据客户(某证券公司)需求,是要做一套自动化流程处理,主要是合作方软件和python脚本的兼顾使用。目前,是需要将网页复制的数据放到excel中,之前是直接粘贴过去,但问题是某些以'0'开头的数字会被自动屏蔽,必须是邮编格式才可以显示,包括浮点数自动舍去后面的'0'等问题。用pandas写入也一样,最后发现是没指定类型。

    学习的内容:

    • pandas的dataframe组合
    • pandas将内容写入excel的不同sheet
    • 写入excel时显示0开头数字

    代码介绍:

    1. get_header为获取列名,返回列表,组装到存有数据的dataframe;
    2. gen_df为获取有空值的数据,并将空值置为null;
    3. write_excel将数据写入excel,可以写入不同sheet;
    def get_header():
        """
        获取列名
        return: list
        """
        df1 = pd.read_clipboard(header=None, dtype=str)
        headers = [i.pop() for i in np.array(df1).tolist()]
        return headers
    
    
    def gen_df():
        """针对复制源数据有空值的"""
        df3 = pd.read_clipboard(header=None, sep=r'\s', dtype=str).replace('nan', '')
        return df3
    
    
    def write_excel(headers, sheet, df_piece=None):
        """
        数据写入到Excel,可以写入不同的sheet
        """
        df2 = pd.read_clipboard(header=None, dtype=str)
        if df_piece is not None:  # 主要针对有空值得时候,需要拼接df
            df2 = df2.append(df_piece)
        writer = pd.ExcelWriter(r'C:\Users\hand\Desktop\result\data.xlsx', engine='openpyxl')
        print(df2)
        if os.path.exists(r'C:\Users\hand\Desktop\result\data.xlsx') != True:
            df2.to_excel(writer, sheet_name=sheet, index=None)
        else:
            book = load_workbook(writer.path)
            writer.book = book
        df2.to_excel(writer, index=False, sheet_name=sheet, header=headers)
        writer.save()
        writer.close()
    

    相关文章

      网友评论

          本文标题:关于pandas写入excel不同sheet的方法

          本文链接:https://www.haomeiwen.com/subject/sqhasftx.html