python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas excel处理并读取sheet

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的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文