pandas实现excel表格处理并读取指定sheet的方法
作者:乐享极致
这篇文章主要介绍了pandas实现excel表格处理并读取指定sheet的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
pandas处理excel表格,查看有多少个sheet
import pandas as pd data = pd.ExcelFile('20200710.xls') sheet_names = data.sheet_names print(sheet_names) ['1.1信息-客户信息', '1.2信息-受电设备', '1.3信息-工单查询', '1.2电费-用户信息', '2.2电费-电费收取', '2.3抄表电量信息', '2.4退补处理方案']
pandas读取指定的sheet_name
for sheet in sheet_names: if sheet == '1.1信息-客户信息': # 读取1.1信息-客户信息,并将nan替换成空字符串'' df = pd.read_excel('20200710.xls', sheet_name=sheet).fillna('')
查看表格发现前3行信息,并不是我们所需要的,所以需要将前3行剔除;更换表头(columns)
for sheet in sheet_names: if sheet == '1.1信息-客户信息': # 读取1.1信息-客户信息,并将nan替换成空字符串'' df = pd.read_excel('20200710.xls', sheet_name=sheet).fillna('') df_ = df.iloc[3:, :] # 修改表3行以后的数据并将表头修改:df.iloc[2:3, :].values[0] df_.columns = df.iloc[2:3, :].values[0] print(df_) """ 序号 立户日期 用户名称 ... 纳税人电话 增值税银行 注册地址 3 1 2015-09-02 00:00:00 泊头市恒广铸造有限公司 ... 15128788399 工行泊头河东支行 泊头市堤口王村 """
通过pandas写入数据库
方法一:
# 根据需求添加需要的字段 df_['create_by'] = ['c_by' for _ in range(df_.shape[0])] time_s = int(time.time()*100000) df_['batch'] = [time_s for _ in range(df_.shape[0])] """ [{'序号': 1, '立户日期': Timestamp('2015-09-02 00:00:00'), '用户名称': '泊头市恒广铸造有限公司', '用户编号': '0648716963', '用电地址': '河北省沧州市泊头市泊镇堤口王村', '合同容量 ': 900, '供电单位': '国网泊头市供电公司', '用户类别': '大工业用电', '行业分类': '其他金属制品制造', '高耗能行业类别': '', '负荷性质': '三类', '用户分类': '高压', '供电电压': '交流10kV', '生产班次': '三班', '转供标志': '无转供', '电费结算方式': '抄表结算', '票据类型': '增值税发票', '抄表段': 1290005923, '收费协议号': '', '缴费方式': '非金融机构95598银联缴费', '运行容量': 900, '停电标志': '未实施停电', '临时用电标志': '非临时用电', '城乡类别': '农村', '省': '河北省', '市': '沧州市', '区': '泊头市', '街道(乡镇)': '泊镇', '居委会(村)': '堤口王村', '道路': '104国道', '小区': '', '门牌号': '道边', '增值税名': '泊头市恒广铸造有限公司', '增值税号': '911309813362468134', '增值税账号': '0408318209300004418', '纳税人电话': 15128788399, '增值税银行': '工行泊头河东支行', '注册地址': '泊头市堤口王村'}] """ # 在Django中需要向数据库中插入多条数据(list) df_list = df_.to_dict(orient='records') Blog.objects.bulk_create(df_list)
方法二:
df_.to_sql(name='blog', con=engine, chunksize=1000, if_exists='replace', index=False) """ chunksize可以设置一次入库的大小; if_exists设置如果数据库中存在同名表怎么办, ‘replace'表示将表原来数据删除放入当前数据; ‘append'表示追加; ‘fail'则表示将抛出异常,结束操作,默认是‘fail'; index=接受boolean值,表示是否将DataFrame的index也作为表的列存储 """
以上就是pandas实现excel表格处理并读取指定sheet的方法的详细内容,更多关于pandas excel处理并读取sheet的资料请关注脚本之家其它相关文章!