python: read excel and export excel

news2024/11/28 2:55:17
"""
PythonAppReadExcel.py
edit: geovindu,Geovin Du,涂聚文
date 2023-06-13
保险
"""
# This is a sample Python script.
# python.exe -m pip install --upgrade pip
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

import xlrd
import xlwt
import xlwings as xw
import xlsxwriter
import openpyxl as ws
import pandas as pd
import pandasql
from pandasql import sqldf
import os
import sys
from pathlib import Path
import re
import Insurance
import ReadExcelData

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm,geovindu,Geovin Du')
    #https://www.digitalocean.com/community/tutorials/pandas-read_excel-reading-excel-file-in-python
    #https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.convert_dtypes.html
    #https://www.geeksforgeeks.org/args-kwargs-python/
    insura=[]
    objlist=[]
    datalist = []
    dulist=[]
    # 查询某文件夹下的文件名
    folderPath = Path(r'C:\\Users\\geovindu\\PycharmProjects\\pythonProject2\\')
    fileList = folderPath.glob('*.xls')
    for i in fileList:
        stname = i.stem
        print(stname)
    # 查询文件夹下的文件  print(os.path.join(path, "User/Desktop", "file.txt"))
    dufile = ReadExcelData.ReadExcelData.ReadFileName(folderPath, 'xls')
    for f in dufile:
        fileurl = os.path.join(folderPath, f)
        dulist1 = ReadExcelData.ReadExcelData.ReadDataFile(fileurl)  # object is not callable 变量名称冲突的原因
        for duobj in dulist1:
            dulist.append(duobj)
        print(os.path.join(folderPath, f))

    ylsum = 0  # 养老
    llsum = 0  # 医疗
    totalsum = 0  # 一年费用
    for geovindu in dulist:
        # duobj = Insurance.Insurance
        print(geovindu)
        name = geovindu.getInsuranceName()
        duname = name.convert_dtypes()
        # yname = duname['Unnamed: 2']
        print(type(duname))
        print("保险类型:", duname)  # class 'pandas.core.series.Series
        strname = pd.Series(duname).values[0]
        coas1 = geovindu.getInsuranceCost()
        # coast = int(geovindu.getInsuranceCost())
        coas = coas1.convert_dtypes()
        coast = pd.Series(coas).values[0]  # int(coas)
        # print("casa",int(coas))
        totalsum = totalsum + coast
        if (strname == "养老"):
            ylsum = ylsum + coast
        if (strname == "医疗"):
            llsum = llsum + coast
        print("费用:", coast)
        month = int(geovindu.getIMonth())
        print("月份:", month)
        datalist.append([strname, coast, month])

    print("一年养老", ylsum)
    print("一年医疗", llsum)
    print("一年费用", totalsum)
    # https: // pandas.pydata.org / pandas - docs / stable / reference / api / pandas.DataFrame.groupby.html
    # 导出数据生成EXCEL
    dataf = pd.DataFrame(datalist, columns=['保险类型', '交费金额', '交费月份'])  # 增加列名称
    dataf2 = pd.DataFrame({"统计类型": ["一年养老", "一年医疗", "一年费用"], "金额": [ylsum, llsum, totalsum]})
    dataf.sort_values('交费月份', inplace=True)  # 指定列排序
    print(sqldf('''SELECT 交费金额,交费月份 FROM dataf group by 交费月份 LIMIT 25'''))
    #staicmont=sqldf('''SELECT 交费金额,交费月份 FROM dataf group by 交费月份 LIMIT 25''')
    # 交费用分份统计
    # print(sqldf('''SELECT 交费金额,交费月份 FROM dataf group by 交费月份  LIMIT 25'''))
    staicmonth = sqldf('''SELECT 交费金额,交费月份 FROM dataf group by 交费月份 LIMIT 25''')

    with pd.ExcelWriter('geovindu.xlsx') as writer:
        dataf.to_excel(writer, sheet_name='2023年保险费用详情', index=False)
        dataf2.to_excel(writer, sheet_name='保险统计', index=False)
        staicmonth.to_excel(writer, sheet_name='月份统计', index=False)


# See PyCharm help at https://www.jetbrains.com/help/pycharm/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

orbslam 地图点观测距离范围 mfMinDistance,mfMaxDistance 的理解

目的是在不同帧不同距离的范围内观测到同一个地图点 直观理解,由于相机成像小孔成像近大远小 相机在距离特征点i 1米时图像金字塔第0层的 31x31图像区域, 类似于相机在距离 特征点i 最远约米时的图像金字塔第7层的31x31图像区域。 相机在距离特征点i 1…

桥接模式(十)

不管怎么样,都要继续充满着希望 上一章简单介绍了适配器模式(九), 如果没有看过, 请观看上一章 一. 桥接模式 引用 菜鸟教程里面的 桥接模式介绍: https://www.runoob.com/design-pattern/bridge-pattern.html 桥接(Bridge)是用于把抽象化…

GitHub 2800颗星,支持GPT/Transformer,字节跳动这个开源项目是怎么来的?

AI 绘画、机器翻译、多轮对话……对于各类 AI 相关的功能来说,总有一个痛点,困扰着所有训模型的算法工程师们: 想要效果更好,那么 AI 模型一般都很大,耗费的算力更多不说,运行起来还更费时间; 如…

关键字static,final的使用

关键字:static 概念 是java中的一个关键字 用于修饰成员(成员变量和成员方法) 类属性、类方法的设计思想 概念: 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实 质上的对象&#x…

使用递归SQL实现树形参数的转换(后传前)

1、什么是递归SQL 递归 SQL(Recursive SQL)是一种 SQL 查询语言的扩展,它允许在查询中使用递归算法。递归 SQL 通常用于处理树形结构或层次结构数据,例如组织结构、产品分类、地理位置等。 递归 SQL 语句通常包含两个部分&#xf…

大数据入门-大数据技术概述(一)

大数据入门系列文章 大数据入门-大数据是什么 一、概念 大数据技术是指在构架大数据平台的时候需要的技术。包含存储系统,数据库,数据仓库,资源调度,查询引擎,实时框架等。下面以我目前所了解到的一些技术做简要介绍…

React学习笔记十-生命周期(旧)

此文章是本人在学习React的时候,写下的学习笔记,在此纪录和分享。此为第十篇,主要介绍React非常重要的组件的生命周期(旧)。要学习react新的生命周期,那必须先学习旧的生命周期。 目录 1.引出生命周期概念 1.1案例 1.1.1案例卸…

snmp默认团体名/弱口令漏洞及安全加固

一、漏洞描述 SNMP(简单网络管理协议)被广泛用于计算机操作系统设备、网络设备等领域监测连接到网络上的设备是否有任何引起管理上关注的情况。在运行SNMP服务的设备上,若管理员配置不当运行默认团体名/弱口令访问,将导致敏感信息泄露。敏感…

Sentinel源码分析-ProceesorSlotChain调用链及树状资源节点

Sentinel 实现流控,隔离,降级等功能,本质要做两件事: 数据统计: 统计某个资源的访问数据(QPS,RT(响应时间),异常比例)等信息规则判断: 判断流控规…

攻略 | 如何拿下奖金534万的全国人工智能大赛?

全国人工智能大赛已连续成功举办三届,累计吸引全球20个国家、1万多支队伍参与竞技,已成为人工智能领域参与规模和影响力都名列前茅的顶级赛事。作为头部科技企业、高等院校和科研院所的链接平台,大赛在促进产学研融合、推动多项成果落地方面成…

比后缀Ti更香的N卡全能型号回归,40显卡终于不恶心了

NVIDIA RTX 40 系显卡上市有一段时间了,不过大家给出的一致看法是:除了 4090 外,其他型号暂时都不值得购买! 倒不是说他们性能多拉胯,主要是核心规格与价格属实不那么匹配。 特别是主流的 RTX 4060、4070 级别&#…

flask搭建在线音乐网系统

1.使用虚拟环境Virtualenv来创建项目 2. Flask框架介绍 Flask框架是一个用Python编写的轻量级Web应用程序框架,依赖于Werkzeug和Jinja2两个外部库。Werkzeug是一个WSGI工具包,用于接收和处理HTTP请求,匹配视图函数,支持Cookie和会…

基于Java社区文化宣传网站设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

2023年5月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2023年5月国产数据库大事件和重要产品发布消息。 目录 5月国产数据库大事记 TOP105月国产数据库大事记(时间线)产品/版本发布兼容认证代表厂商大事记排行榜新增数据库厂商活动 5月国产数据库大事记 TOP10 5月国产数据库大事记&…

高考之后想学习网络安全,网络安全/信息安全是一个好的专业吗?

本人信息安全专业毕业,在甲方互联网大厂安全部与安全乙方大厂都工作过,有一些经验可以供对安全行业感兴趣的人参考。 或许是因为韩商言让更多人知道了CTF,也或许是因为网络安全越来越受国家重视,安全最近愈加火爆了。当然&#x…

C++初阶—list深度解剖及模拟实现

目录 ➡️0. 前言 😊1.简易框架实现 🐔1. list和__list_node分析实现 🐔2. 无参构造 😊2.迭代器实现 🐔1. list普通迭代器面临问题及解决方案 🐔2. __list_node\iterator\list三类分析 &#x1f41…

内网安全:Cobalt Strike 与 MSF 联动( 会话 相互转移 )

内网安全:Cobalt Strike 与 MSF 联动( 会话 相互转移 ) 在渗透中,有时候 Cobalt Strike 会话可能会受限制,所以我们需要把 Cobalt Strike 会话转移到 MSF 上进行后面的渗透。也有的时候会话在 MSF 上,但是…

大数据学习归纳

本文初衷是为了学习归纳,若有错误,请指出。 修改记录 时间内容2020年4月10日第一次发布2020年4月16日添加MaxCompute SQL部分2020年9月14日新增数仓部分笔记 大数据架构 基础知识题 大数据组件概念 集群:多个人做同样的事 分布式:…

Visual Studio Community 2022 + Win10 编译 OpenCPN 5.9.0 记录

前言 前两天尝试用vs2017编译OpenCPN5.0.0,前后折腾了两三天总算编译成功了。官网给出的编译过程比较简单,我在实际编译过程中遇上了很多很多的问题,最多的就是缺少库,好在最后编译通过了。 后来浏览OpenCPN官网的时候发现发布了…

【Spring】开发框架Spring核心技术含Resource接口详细讲解

前言 Spring 是 Java EE 编程领域的一款轻量级的开源框架,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java…