python办公自动化,csv文件/excel文件差集合并

python办公自动化,csv文件/excel文件差集合并

一、文件实现效果:

取收发模式.xlsx与基础数据.csv取差集,再用收发模式-差集合并基础数据,输出到新的收发模式.xlsx数据。

二、涉及子程序

1、polas导入csv文件

复制代码
def pddaoru_csv(filedir):


    encod=detect_csv_encoding(filedir)
    print(f'encod:{encod}')
    print(f'开始导入{filedir}文件,可以用时较长。')
    df = pl.read_csv(filedir, encoding=encod)  # polars导入excel文件命令
    pf = df.to_pandas()  # polars导入excel文件命令

    print(f'导入{filedir}文件, 源有{len(df)}行,有效数据{len(pf)}行')
    kkk=pf.copy()
    return kkk

2、polas导入excel文件

复制代码
def pldaoru_sheetname_260309(filedir):
    print(f'正在导入excel表{filedir},用时可能较长。')

    df = pl.read_excel(filedir)  # polars导入excel文件命令
    pf = df.to_pandas()  # polars导入excel文件命令

    kkk=pf.copy()
    print(f'导入{filedir}文件, 导入{len(pf)}行')
    return kkk

3、csv与excel合并程序

复制代码
def rxtxtool():
    dir_rxtx='./收发模式\\'
    dir_data='./收发模式基础数据\\'
    dir_out='./输出结果\\'
    order_out=['所属行政地市','小区名称','GNODEBID(索引关键字)','小区id','ci','工作频段','发送和接收模式','收发模式','运营商','入库时间']

    p_data= pd.DataFrame()
    for file in os.listdir(dir_data):
        filein = dir_data + file
        pf_a = pddaoru_csv(filein)
        p_data = pd.concat([p_data, pf_a])
    order=['运营商','所属行政地市','小区名称','GNODEB ID(索引关键字)','小区id','ci','工作频段','发送和接收模式','入库时间']
    p_data=p_data[order]
    p_data.rename(columns={'GNODEB ID(索引关键字)':'GNODEBID(索引关键字)'},inplace=True)
    print(p_data['ci'])
    p_data['ci']=p_data['ci'].str.replace("\t","")
    print(p_data['ci'])
    p_data=p_data[(p_data['ci']!='<empty>')]
    p_data = p_data[(p_data['ci'] != 'null')]
    p_data = p_data[(p_data['发送和接收模式'] !='  ')]
    p_data = p_data[(p_data['发送和接收模式'] != 'null ')]

    p_data['ci']=p_data['ci'].astype(c_int64)
    p_data['收发模式']=p_data['发送和接收模式'].str.replace('T.+$',"",regex=True)
    p_data['收发模式']=p_data['收发模式']+'TR'
    p_data=p_data[order_out]
    p_data=p_data.drop_duplicates(subset=['ci'],keep="first")
    order_1=['ci']
    p_data_ci=p_data[order_1]
    p_data_ci['data']='是'


    # fileout=dir_out+'p_data.csv'
    # p_data.to_csv(fileout,encoding='utf-8 sig',index=False)

    p_rxtx= pd.DataFrame()
    for file in os.listdir(dir_rxtx):
        filein = dir_rxtx + file
        pf_a = pldaoru_sheetname_260309(filein)
        p_rxtx= pd.concat([p_rxtx, pf_a])

    p_rxtx = p_rxtx.drop_duplicates(subset=['ci'], keep="first")
    p_rxtx=pd.merge(p_rxtx,p_data_ci,on=['ci'],how="left")
    p_rxtx=p_rxtx[pd.isnull(p_rxtx['data'])]
    p_rxtx=p_rxtx[order_out]
    p_rxtx=pd.concat([p_rxtx,p_data])
    strtoday=strtodaydate()
    fileout = dir_out + '发送接收模式_'+strtoday+'.xlsx'
    p_rxtx.to_excel(fileout, index=False)

三、完正的运行程序已上传到【Python全栈开发】-自动化办公(Excel)-收发模式.csv匹配基础数据.xlsx文件实现数据合并,地址https://download.csdn.net/download/m0_67097444/92916242

相关推荐
麻瓜老宋9 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十三步,多行输入、进制输出、错误恢复、常量折叠、配置加载等
c语言·开发语言·atomcode
q567315239 小时前
企业级 HTTP 代理采购选型:技术评估清单 15 项
开发语言·网络·爬虫·网络协议·http·隧道ip·代理ip
SamChan9010 小时前
在Web应用中集成PDF多语言翻译功能:PDFTranslator API实战指南
前端·python·ai·pdf·yapi·机器翻译
天天进步201510 小时前
Python全栈项目--智能办公自动化系统
开发语言·python
颜酱10 小时前
09 | 重构项目结构
人工智能·python·langchain
cm04Z9c9111 小时前
C#摸鱼实录——IoC与DI案例详解
开发语言·c#
long31611 小时前
Java 新手入门与实战开发指南
java·开发语言
摩西蒙11 小时前
计算机网络
开发语言·计算机网络·php
山峰哥11 小时前
数据库性能救星:Explain执行计划深度拆解
服务器·开发语言·数据库·sql·启发式算法
Sisphusssss12 小时前
香橙派5plus GPIO
linux·python·ubuntu