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

相关推荐
LadenKiller几秒前
先分清阶段,再让工具帮量化学习
人工智能·python
WeiXin_DZbishe2 分钟前
基于springboot大学生提问箱系统-计算机毕设【课程设计】72593
javascript·vue.js·spring boot·vscode·python·node.js·php
jsjzsl23 分钟前
独立自由度框架下位置自由度的本体论特征、物理现象与新技术路径
python·flask·fastapi
z_mazin8 分钟前
逆向一种私有二进制序列化格式:从零到字节级解析器
网络·python·网络协议·算法·rpc
luj_17688 分钟前
罚球线右移破防新策略
c语言·开发语言·网络·经验分享·算法
weixin_493503679 分钟前
商会系统里的在线文件预览:PDF/Word/Excel 三种实现与选型(Node + 前端实战)
pdf·word·excel
威联通安全存储18 分钟前
TS-h1290FX 在模具制造设计与CAM场景的部署
python·制造
legendary_16319 分钟前
PD‑SINK芯片在无协议后端负载中的工程应用
c语言·开发语言·人工智能·智能手机·计算机外设
Nuanyt22 分钟前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
liliangcsdn39 分钟前
IC计算-前向/远期收益计算和代码示例
开发语言·python·pandas