pandas处理excel总结
作者:互联网
总结要点
读取步骤
name_='增值税系统' dir_ ="C:/Users/bob11/Desktop/数据项整理/数据项/%s.xlsx"%name_ df1=pd.read_excel(dir_,skiprows=0,sheet_name=None) # sheet_name=None 用于读取所有sheet页
文件地址采用/,可以避免\需要用r来标注字符串,读取excel时添加参数sheet_name=None可以读取所有sheet名,并通过
list1=list(df1)
生成sheet名的列表,结合for循环可以实现sheet的遍历。
for i in list1: df_ = df1.get(i) df_=df_[['数据项名称','数据项英文名称']] x= df0.loc[df0['数据表名称']==i,'经营管理数据平台库表'].values[0] # 匹配目录中对应行的库表名 print(x) df_.insert(0,'库表名',x) df_.insert(0,'表描述',i) df_.insert(0,'系统名称',name_) if dfs is None: dfs=df_ else: dfs = pd.concat([dfs, df_], ignore_index=True)
其中df_ = df1.get(i)用于读取具体某页sheet。
df_=df_[['数据项名称','数据项英文名称']]用于获取表内某列数据,注意当获取2列以上时需要使用嵌套列表。
x= df0.loc[df0['数据表名称']==i,'经营管理数据平台库表'].values[0] 的意思时定位到df0表中‘数据表名称列’,找出值为i
的行,并取本行中‘经营管理数据平台库表’列的值,由于loc得出的数据为表,需要搭配values[0]转换为字符串等。
df_.insert(0,'库表名',x)的三个参数分别为插入列的位置, 插入列的名称,插入列的值,其中x可以为列表也可以为字符串, 字符串时为全列填充。
判断语句存在的目的是为了在第一次循环时,给合并表dfs赋值,pd.concat([dfs, df_], ignore_index=True)实现合并
dfs.to_excel('C:/Users/bob11/Desktop/%s.xlsx'%name_,index=False)
最后的导出excel操作时,添加参数index=False用于剔除默认A列的数字序号。
附:完整代码
import pandas as pd import numpy as np name_='增值税系统' dir_ ="C:/Users/bob11/Desktop/数据项整理/数据项/%s.xlsx"%name_ df1=pd.read_excel(dir_,skiprows=0,sheet_name=None) # sheet_name=None 用于读取所有sheet页 list1=list(df1) # 所有sheet页列表 df0=df1.get('目录页') # 目录页用0锁定 list1.remove('目录页') # 剔除目录页,剔除循环 dfs = None for i in list1: df_ = df1.get(i) df_=df_[['数据项名称','数据项英文名称']] x= df0.loc[df0['数据表名称']==i,'经营管理数据平台库表'].values[0] # 匹配目录中对应行的库表名 print(x) df_.insert(0,'库表名',x) df_.insert(0,'表描述',i) df_.insert(0,'系统名称',name_) if dfs is None: dfs=df_ else: dfs = pd.concat([dfs, df_], ignore_index=True) dfs.to_excel('C:/Users/bob11/Desktop/%s.xlsx'%name_,index=False)
表格结构
标签:总结,数据项,None,sheet,name,df,excel,dfs,pandas 来源: https://www.cnblogs.com/feng-hao/p/16150394.html