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

学习笔记
需求:根据客户(某证券公司)需求,是要做一套自动化流程处理,主要是合作方软件和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 headersdef gen_df(): """针对复制源数据有空值的""" df3 = pd.read_clipboard(header=None, sep=r'\s', dtype=str).replace('nan', '') return df3def 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()

    推荐阅读