python: read excel

news2024/12/23 3:46:34
"""
Insurance。py
edit: geovindu,Geovin Du,涂聚文
date 2023-06-13
保险类
"""
 
import sys
import os
 
 
class Insurance:
    """
    保险类
    """
 
    def __init__(self, InsuranceName, InsuranceCost, IMonth):
        """
        保险类  构造函数
        :param  InsuranceName:  保险类型
        :param  InsuranceCost:  保险费用
        :param  IMonth:  月份
        """
        self.__InsuranceName = InsuranceName
        self.__InsuranceCost = InsuranceCost
        self.__IMonth = IMonth
 
    def get_InsuranceName(self):
        """
        得到保险名称
        :return:  返回保险名称
        """
        return self.__InsuranceName
 
    def set_InsuranceName(self, InsuranceName):
        """
        设置保险名称
        :param  InsuranceName:  输入保险名称
        :return:  none
        """
        self.__InsuranceName = InsuranceName
 
    def get_InsuranceCost(self):
        """
        获取保险费用
        :return:  返回保险费用
        """
        return self.__InsuranceCost
 
    def set_InsuranceCost(self, InsuranceCost):
        """
        设置保险费用
        :param  InsuranceCost:  输入保险费用
        :return:  none
        """
        self.__InsuranceCost = InsuranceCost
 
    def get_IMonth(self):
        """
        获取月份
        :return:  返回月份
        """
        return self.__IMonth
 
    def set_IMonth(self, IMonth):
        """
        设置月份
        :param  IMonth:  输入月份
        :return:  none
        """
        self.__IMonth = IMonth
 
    def __str__(self):
        return f"InsuranceName:  {self.__InsuranceName},  InsuranceCost:  {self.__InsuranceCost},  Month:  {self.__IMonth}"
 
 
 
"""
ReadExcelData.py
读取excel文件数据
date 2023-06-13
edit: Geovin Du,geovindu, 涂聚文
"""
import xlrd
import xlwt
import xlwings as xw
import xlsxwriter
import openpyxl as ws
import pandas as pd
import pandasql
import os
import sys
from pathlib import Path
import re
import Insurance
 
class ReadExcelData:
    """
    读EXCEL文件
 
    """
    def ReadFileName(folderPath,exif):
        """
        文读文件夹下的文件列表
        :param folderPath:
        :param exif: 文件扩展名 如:'xls','xlsx','doc', 'docx'
        :return:返回文件名称列表,包括扩展名
        """
        # 查询某文件夹下的文件名
        #folderPath=Path('C:\\Users\\geovindu\\PycharmProjects\\pythonProject\\')
        #fileList=folderPath.glob('*.xls')
        filenames=[]
        fileList = folderPath.glob('*.'+exif)
        for i in fileList:
            #stname=i.stem
            filenames.append(i.stem+'.'+exif)
        return filenames
 
    def ReadDataFile(xlspath):
        """
        读取指定一文件的数据
        :param xlspath: excel文件物理路径
        :return: 返回当前文件的数据
        """
        #print(xlspath)
        objlist = []
        dfnonoe = pd.read_excel(io=xlspath, sheet_name='Sheet1', keep_default_na=False)
        dfnonoe1 = dfnonoe.dropna(axis=1)
        row1 = dfnonoe1.loc[0:0]  #第一行 标题, 有规则的,就不需要这种处理方式
        #print(row1['Unnamed: 2'])  # 社保明细
        #print(row1['Unnamed: 3'])  # 1月缴纳明细(元)
        yl = row1['Unnamed: 2']
        yll = yl.convert_dtypes()
        yc = row1['Unnamed: 3']
        ycc = yc.convert_dtypes()
        mm = ReadExcelData.RemoveStr(ycc[0]) #提取月份数据
 
        row2 = dfnonoe1.loc[1:1] #第二行
        yl2 = row2['Unnamed: 2']  #养老
        yll2 = yl2.convert_dtypes()
        yc2 = row2['Unnamed: 3']   #费用
        ycc2 = yc2.convert_dtypes()
 
        row3 = dfnonoe1.loc[2:2] #第三行
        yl3 = row3['Unnamed: 2']   #医疗
        yll3 = yl3.convert_dtypes()
        yc3 = row3['Unnamed: 3']   #费用
        ycc3 = yc3.convert_dtypes()
        objlist.append(Insurance.Insurance(yll2,ycc2,mm))
        objlist.append(Insurance.Insurance(yll3,ycc3,mm))
        return  objlist
 
 
 
    def RemoveStr(oldstr):
        """
        去除指定的字符串
        :param oldstr: 旧字符串
        :return: 新字符串
        """
        newstr = re.sub(r'月缴纳明细(元)', "", oldstr)  #月缴纳明细(元)
        return newstr
 
 
    def clearBlankLine(oldfile,newfile):
        """
        清除文件里面的空白行
        :param oldfile: 旧文件
        :param newfile: 新文件
        :return: none
        """
        file1 = open(oldfile, 'r', encoding='utf-8') # 要去掉空行的文件
        file2 = open(newfile, 'w', encoding='utf-8') # 生成没有空行的文件
        try:
            for line in file1.readlines():
                if line == '\n':
                    line = line.strip("\n")
                file2.write(line)
        finally:
            file1.close()
            file2.close()
 
    def excelcovert():
        """
 
        :return:
        """
        app=xw.App(visible=False,add_book=False)
        folderPath=Path('C:\\Users\\geovindu\\PycharmProjects\\pythonProject\\')
        fileList=folderPath.glob('*.xls')
        for i in fileList:
            newFilePath=str(i.with_suffix('.xlsx'))
            workbook=app.books.open(i)
            workbook.api.SavaAs(newFilePath,FileFormat=56)
            workbook.close()
        app.quit()

调用:

# This is a sample Python script.
 
# 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
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,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=[]
    #excelcovert()
    s = '1123*#$ 中abc国'
    str = re.sub('[a-zA-Z0-9!#$%&\()*+,-./:;<=>?@,。?★、…【】《》?!^_`{|}~\s]+', "", s)
    # 去除不可见字符
    str = re.sub('[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a]+',"", str)
    print(str)
    phone = "2004-959-559 # 这是一个电话号码"
    tt="1月缴纳明细(元)"
    newtt=re.sub(r'月缴纳明细(元)',"",tt)
    print(newtt)
    # 删除注释
    num = re.sub(r'#.*$', "", phone)
    print("电话号码 : ", num)
 
    xlspath1 = r'C:\Users\geovindu\PycharmProjects\pythonProject\1月.xls'
    xlspath2 = r'C:\Users\geovindu\PycharmProjects\pythonProject\2月.xls'
    xlspath3 = r'C:\Users\geovindu\PycharmProjects\pythonProject\3月.xls'
    xlspath4 = r'C:\Users\geovindu\PycharmProjects\pythonProject\4月.xls'
    xlspath5 = r'C:\Users\geovindu\PycharmProjects\pythonProject\5月.xls'
    xlspath6 = r'C:\Users\geovindu\PycharmProjects\pythonProject\6月.xls'
    xlspath7 = r'C:\Users\geovindu\PycharmProjects\pythonProject\7月.xls'
    xlspath8 = r'C:\Users\geovindu\PycharmProjects\pythonProject\8月.xls'
    xlspath9 = r'C:\Users\geovindu\PycharmProjects\pythonProject\9月.xls'
    xlspath10 = r'C:\Users\geovindu\PycharmProjects\pythonProject\10月.xls'
    xlspath11 = r'C:\Users\geovindu\PycharmProjects\pythonProject\11月.xls'
    xlspath12 = r'C:\Users\geovindu\PycharmProjects\pythonProject\12月.xls'
 
    xlspath13 = r'C:\Users\geovindu\PycharmProjects\pythonProject\1月0.xls'
    xlspath14 = r'C:\Users\geovindu\PycharmProjects\pythonProject\2月0.xls'
 
    dfnew = pd.read_excel(r'C:\Users\geovindu\PycharmProjects\pythonProject\1月.xls')
 
 
    #dfnew = dfnew.drop(columns=[0, 1],axis=1)
    #dfnew.dropna(axis=0, how="all", inplace=True)  # 删除excel空白行代码
    #dfnew.dropna(axis=1, how="all", inplace=True)  # 删除excel空白列代码
    #dfnew.to_excel(r'C:\Users\geovindu\PycharmProjects\pythonProject\1月.xls', "1")
 
    #注:axis = 0    表示操作excel行,axis = 1    表示操作excel列
 
 
    xls1 = pd.read_excel(io=xlspath1, sheet_name='Sheet1', index_col=(2, 3), skiprows=1,keep_default_na=False)  # 从第2列至第3列,省略第一行
    #xls1 = pd.read_excel(io=xlspath1, sheet_name='Sheet1')
    xls2 = pd.read_excel(io=xlspath2, sheet_name='Sheet1', index_col=(2, 3), skiprows=1,keep_default_na=False)  # 从第2列至第3列,省略第一行
    xls3 = pd.read_excel(io=xlspath13, sheet_name='Sheet1',keep_default_na=False)  # 人工去除空行空列
    xls4 = pd.read_excel(io=xlspath14, sheet_name='Sheet1',keep_default_na=False)  # 人工去除空行空列
 
    dulist=[]
    # 封装成类操作
    dulist1 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath1)
    dulist2 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath2)
    dulist3 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath3)
    dulist4 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath4)
    dulist5 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath5)
    dulist6 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath6)
    dulist7 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath7)
    dulist8 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath8)
    dulist9 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath9)
    dulist10 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath10)
    dulist11 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath11)
    dulist12 = ReadExcelData.ReadExcelData.ReadDataFile(xlspath12)
 
    #dulist.append(dulist2)
    for Insurance.Insurance in dulist1:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist2:
         duobj=Insurance.Insurance
         #print(duobj)
         dulist.append(duobj)
    for Insurance.Insurance in dulist3:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist4:
         duobj=Insurance.Insurance
         #print(duobj)
         dulist.append(duobj)
    for Insurance.Insurance in dulist5:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist6:
         duobj=Insurance.Insurance
         #print(duobj)
         dulist.append(duobj)
    for Insurance.Insurance in dulist7:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist8:
         duobj=Insurance.Insurance
         #print(duobj)
         dulist.append(duobj)
    for Insurance.Insurance in dulist9:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist10:
         duobj=Insurance.Insurance
         #print(duobj)
         dulist.append(duobj)
    for Insurance.Insurance in dulist11:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
    for Insurance.Insurance in dulist12:
         duobj=Insurance.Insurance
         dulist.append(duobj)
         #print(duobj)
 
    for Insurance.Insurance in dulist:
        duobj = Insurance.Insurance
        print(duobj)
 
 
 
    print("geovindu,*************")
 
    '''
    index_row = []
    # loop each row in column A
    for i in range(1, ws.max_row):
        # define emptiness of cell
        if ws.cell(i, 1).value is None:
            # collect indexes of rows
            index_row.append(i)
 
    # loop each index value
    for row_del in range(len(index_row)):
        ws.delete_rows(idx=index_row[row_del], amount=1)
        # exclude offset of rows through each iteration
        index_row = list(map(lambda k: k - 1, index_row))
    '''
    #改列名 https://stackoverflow.com/questions/35369382/delete-empty-row-openpyxl
    #xls1.rename(columns={'Unnamed: 0': 'new column name'}, inplace=True)
 
    print(xls1)
 
    print("****")
    print(xls2)
    print(xls3)
    print(xls4)
    print(xls1.columns.ravel())
 
    dfnonoe = pd.read_excel(io=xlspath1, sheet_name='Sheet1',keep_default_na=False)
    #dfnonoe1 = dfnonoe.loc[:, ~dfnonoe.columns.str.contains('^Unnamed')]
    #dfnonoe.rename(columns={'Unnamed: 3': '1月缴纳明细'}, inplace=True)
    dfnonoe1 = dfnonoe.dropna(axis=1)
    dfnonoe1.loc[2:2]
    print("none:",dfnonoe1)
    t=dfnonoe1.loc[0:0]
    #print(t)
 
 
 
 
 
    print(t['Unnamed: 2']) #社保明细
    print(t['Unnamed: 3']) #1月缴纳明细(元)
    yy=t['Unnamed: 3']
    print(yy) #.Replace('(元)','')
    #ynew='(元)'.join(filter(str.isalnum, yy))
    #re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+', "", yy)
    #ynew =re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~\s]+',"",yy)
    #print(ynew)
    t1=dfnonoe1.loc[1:1]
 
    print(t1['Unnamed: 2']) #养老
    yl=t1['Unnamed: 2']
    yll=yl.convert_dtypes()
    print(yll)
    print(t1['Unnamed: 3']) #10
    yc=t1['Unnamed: 3']
    ycc=yc.convert_dtypes()
    print(type(yc))
    t3=dfnonoe1.loc[2:2]
    print(t3['Unnamed: 2']) #医疗
    ll=t3['Unnamed: 2']
    lll=ll.convert_dtypes()
    print(lll)
    print(t3['Unnamed: 3']) #20
    lc=t3['Unnamed: 3']
    lcc=lc.convert_dtypes()
    print(lcc)
    f=t['Unnamed: 3']
    print(type(f))  #pandas.core.series.Series
    print(f.convert_dtypes())
    print(f[0])
    print(ReadExcelData.ReadExcelData.RemoveStr(f[0]))
    ff=ReadExcelData.ReadExcelData.RemoveStr(f[0])
    print(ff)
    #m=re.sub(r'月缴纳明细(元)',"",f) #ReadExcelData.RemoveStr(t['Unnamed: 3'])
 
    #objins = Insurance(yll,ycc,ff)
    insura.append([yll,ycc,ff])
    insura.append([lll,lcc,ff])
    for i in insura:
        print(i[0],i[1],i[2])
 
    #print(objins)
    #Insurance.Insurance(yll,ycc,ff)
    #Insurance.Insurance(lll,lcc,ff)
    '''
    objlist.append(Insurance.Insurance(yll,ycc,ff))
    objlist.append(Insurance.Insurance(lll,lcc,ff))
    for Insurance.Insurance in objlist:
         obj=Insurance.Insurance
         print(obj)
   '''
 
    print("**************")
 
    df = pd.DataFrame()
    df1=pd.DataFrame()
    out = pd.concat([xls1,xls2])
    out1=pd.concat([xls3,xls4])
    df = pd.concat([df, out])
    df1=pd.concat([df1,out1])
    print(xls3['1月缴纳明细(元)'])
    sum=0;
    dl=xls3['1月缴纳明细(元)']
    dl2=xls4['2月缴纳明细(元)']
    for ddd in dl:
        sum=sum+ddd
 
    print(dl[0])  #0为养老
    print(dl[1])  #1为医疗
    print("sum:",sum)
    #df3 = df.dropna(axis=1, how='any', thresh=None, subset=None, inplace=False)  # 删除全部为空的行
    #df4 = df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)  # 删除全部为空的行
    # 设置子集:删除第5、6、7行存在空值的列
    #print(df.dropna(axis=1, how='any', subset=[0, 1]))
    print(df1)
    print(df)
    print(df.shape)
    print(df.columns)
    print(df.index)
    print(df1)
    print(df1.shape)
    print(df1.columns)
    print(df1.index)
    print(df1.groupby(['社保明细']).sum())
 
    print(df.groupby(['社保明细']).sum())
 
 
    #df.name='社保明细'
    #df.loc[0]
    #df.loc[0:1]
    for i, j in df.iterrows():
        print(i, j)
        print()
    for i in df.itertuples():
        print(i)
    # 查询某文件夹下的文件名
    folderPath=Path(r'C:\\Users\\geovindu\\PycharmProjects\\pythonProject\\')
    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:
        print(os.path.join(folderPath,f))
 
 
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

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

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

相关文章

STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例)

使用QUADSPI读写W25Q64 QUADSPI介绍硬件连接双闪存模式禁止双闪存模式使能 QUADSPI命令序列指令阶段地址阶段交替字节阶段空指令周期阶段数据阶段 QUADSPI主要信号接口协议模式单线SPI模式双线SPI模式四线SPI模式 使用QUADSPI操作W25Q64发送命令函数状态轮询函数读ID函数QUADSP…

应用案例 | FG-200:通过Modbus将FF H1设备集成到DCS系统

一 背景 FOUNDATION Fieldbus&#xff08;FF&#xff09;协议是一种现代化的数字通信协议&#xff0c;其中FF H1协议在大型的化工、电力、石油等流程工业领域得到了广泛应用。由于FF H1协议具有诸多优势&#xff0c;例如高度可靠性、高速数据传输、强大的诊断能力和灵活的设备…

第4章 总体设计

文章目录 第5章 总体设计5.1 设计过程例题 5.2 设计原理5.2.1 模块化模块化的优势 例题5.2.2 抽象5.2.3 逐步求精求精实际上是细化的过程与抽象的关系 5.2.4 信息隐藏和局部化5.2.5 模块独立模块独立的重要性模块独立的定性标准度量耦合① 无直接耦合② 数据耦合③ 标记耦合④ …

MySQL数据库基础 11

第十一章 数据处理之增删改 1. 插入数据1.1 实际问题1.2 方式1&#xff1a;VALUES的方式添加1.3 方式2&#xff1a;将查询结果插入到表中 2. 更新数据3. 删除数据4. MySQL8新特性&#xff1a;计算列 1. 插入数据 1.1 实际问题 解决方式&#xff1a;使用 INSERT 语句向表中插入…

8.1 正弦波振荡电路(2)

四、石英晶体正弦波振荡电路 石英晶体谐振器&#xff0c;简称石英晶体&#xff0c;具有非常稳定的固有频率。对于振荡频率稳定性要求高的电路&#xff0c;应选用石英晶体作选频网络。 1、石英晶体的特点 将二氧化硅&#xff08; SiO 2 \,\textrm {SiO}_2\, SiO2​&#xff0…

华为OD机试真题 JavaScript 实现【找终点】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;设为nums&#xff0c;最大为100个成员&#xff0c;求从第一个成员开始&#xff0c;正好走到数组最后一个成员&#xff0c;所使用的最少步骤数。 要求&#xff1a; 第一步必须从第一元素开始&#xff0c;且1 < 第一步的步长 &…

测试 4 年,从外包 15K 跳槽去字节 38K+12,啃完这份笔记你也可以

粉丝小王转行做测试已经是第4个年头&#xff0c;一直是一个不温不火的小职员&#xff0c;本本分分做着自己的事情&#xff0c;觉得自己的工作已经遇到了瓶颈&#xff0c;一个偶然的机会&#xff0c;获得了一份软件测试全栈知识点学习笔记&#xff0c;通过几个月的学习&#xff…

虚拟机(VMware )部署

一、VMware 概述&#xff1a; VMware是一家提供虚拟化解决方案的领先公司&#xff0c;其产品被广泛应用于企业和个人用户的计算环境中。VMware的虚拟化技术可以将物理计算资源&#xff08;如服务器、存储和网络&#xff09;抽象成虚拟化的资源&#xff0c;从而提供更高的灵活性…

路径规划算法:基于黑猩猩优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于黑猩猩优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于黑猩猩优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

MySQL之流程控制,索引

一、条件语句 if 条件语句 delimiter // CREATE PROCEDURE proc_if () BEGINdeclare i int default 0;if i 1 THENSELECT 1;ELSEIF i 2 THENSELECT 2;ELSESELECT 7;END IF;END // delimiter ; 二、循环语句 while循环 delimiter // CREATE PROCEDURE proc_while () BEGI…

测试用例设计背后的底层逻辑你一定不知道

目录 前言 1、万物皆可测 2、用例的本质 3、业务建模 4、其他一些测试法 总结&#xff1a; 前言 测试用例是每位测试人员都绕不开的话题&#xff0c;也是大家习以为常的事情。几乎所有测试相关的公众号、博客、专栏&#xff0c;都会提及测试用例&#xff0c;由此可见它的…

华为OD机试真题 JavaScript 实现【矩阵稀疏扫描】【2023 B卷 100分】,附详细解题思路

一、题目描述 如果矩阵中的许多系数都为零&#xff0c;那么该矩阵就是稀疏的。对稀疏现象有兴趣是因为它的开发可以带来巨大的计算节省&#xff0c;并且在许多大的实践中都会出现矩阵稀疏的问题。 给定一个矩阵&#xff0c;现在需要逐行和逐列地扫描矩阵&#xff0c;如果某一…

备战金九银十,互联网大厂最全“Java 面试宝典 +Java 核心知识集”汇总

搬砖也有好几年了&#xff0c;本想在金三银四跳槽来着&#xff0c;结果我想你们应该猜到了&#xff0c;于是计划着下半年跳槽试试&#xff0c;算是提前为金九银十做准备吧&#xff01; 现在着手准备着以防万一自己措手不及&#xff0c;这不&#xff0c;这几天刚整理出炉的两份…

强化学习笔记-11 Off-policy Methods with Approximation

前几章我们讨论了off-policy方式&#xff0c;其同on-policy方式最大的不同之处在于其在训练所采取的动作&#xff0c;是根据behavior policy进行决策的&#xff0c;而不是根据target policy。这种方式的好处在于兼顾了exploitation and exploration。本节将讨论如何通过模型近似…

Spring MVC 的创建连接和使用

目录 前言&#xff1a; MVC 是什么&#xff1f; 1. Spring MVC 项目的创建和连接&#xff1a; 1.1 创建 1.2 连接 2. RequestMapping 注解使用详析&#xff1a; 2.1 指定请求类型&#xff1a; 2.1.1 指定 GET 请求 2.1.2 指定 POST 请求 3. 参数的获取与传递&#xff1a; 3.1 传…

CTR预估之WideDeep系列模型:DeepFM/DCN

前言 在CTR预估中&#xff0c;FM系列模型使用浅层网络&#xff08;线性模型&#xff09;&#xff0c;让模型自己学习特征组合交互&#xff0c;为显式建模的方式&#xff1b;而DNN系列模型使用深层网络&#xff0c;隐式挖掘模型的高阶特征交互。 本文继续介绍结合这两者优点的…

在我电脑中待了很久的5款使用办公软件

你电脑中用的最久的软件是哪些&#xff1f;以下是否有你曾经使用过的软件呢&#xff1f;工欲善其事&#xff0c;必先利其器&#xff0c;今天继续分享五款实用的办公软件。 矢量图绘制——Inkscape Inkscape是一款用于绘制和编辑矢量图形的工具。它可以让你用简单的操作来创建…

AI学术交流——“人工智能”和“神经网络学习”

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 前言 一.人工智能 1.“人工智能之父” 2.达特茅斯会议&#xff08;人工智能起源&a…

2023四大服装管理软件,第1款最受欢迎!

对于服装行业来说&#xff0c;依靠传统的方式管理服装门店或工厂&#xff0c;很难实现精准高效的管理&#xff0c;往往是耗费了大量的时间和精力&#xff0c;也没有挣到什么钱。 这就需要借助服装管理软件&#xff0c;来降低管理和运营的成本&#xff0c;减少工作量的同时&…