美文网首页
多个Sheet的数据合并

多个Sheet的数据合并

作者: Noza_ea8f | 来源:发表于2020-10-28 09:59 被阅读0次

当一个Excel表包含多个Sheet时;
比如我接到的这个表有200个Sheet;
好在每个表的结构都一样;
除第一张表包含表头外,其余表格都不包含表头;

pd.set_option('display.max_columns', None)

意思是设置表格所有列显示完整;

sheets = pd.ExcelFile(path)

这里没有用 pd.read_excel去直接读取表;
因为我想获得所有表的名称列表;

sheet_names = sheets.sheet_names

这样就可以获取所有表格工作簿的名称列表了;

读取第一张表

df = pd.read_excel(io=path, sheet_name=sheet_names[0])

获取表头

df.columns.values

获取新表数据

df_ = pd.read_excel(io=path, sheet_name=dataname, names=df.columns.values)

参数 names=df.columns.values 意思是把表头设置为第一张表的表头
当然也可以忽略表头,直接追加数据;

追加数据

df = df.append(df_, ignore_index=False)

因为索引可能重叠,所以要忽略索引,索引加上参数 ignore_index=False

import pandas as pd

# pd.set_option('display.max_columns', None)
path = '微信支付交易明细证明(20190224-20200223)01.xlsx'

sheets = pd.ExcelFile(path)
sheet_names = sheets.sheet_names
print(len(sheet_names[1:]))
# print(len(sheet_names))
# 读取第一张表
df = pd.read_excel(io=path, sheet_name=sheet_names[0])
# print(df.head())
# print(df)
# 获取表头
print(df.columns.values)


def append_data(df):
    '''
    遍历除第一张表外的所有sheet,提取数据,添加入df的数据中
    :param df: 传入df数据
    :return: 返回添加后的df数据
    '''
    for dataname in sheet_names[1:]:
        print(f'正在处理{dataname}')
        df_ = pd.read_excel(io=path, sheet_name=dataname, names=df.columns.values)
        df = df.append(df_, ignore_index=False)

    return df


df = append_data(df)
print(df)
df.to_excel('result.xlsx', index=False)

相关文章

网友评论

      本文标题:多个Sheet的数据合并

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