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

2018-06-08  本文已影响0人  那年的茶馆

学习笔记

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

学习的内容:

代码介绍:

  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()
上一篇下一篇

猜你喜欢

热点阅读