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

相关推荐
IT笔记1 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust
EQUINOX12 小时前
【论文阅读】| MoCo精读
论文阅读·人工智能·python·深度学习·机器学习
逝水无殇2 小时前
C# 运算符重载详解
开发语言·后端·c#
TPBoreas2 小时前
配置信息防泄露方案:.env 环境隔离详解(dotenv-java)
java·开发语言
用户8356290780512 小时前
使用 Python 自动化 Excel 公式和函数:完整指南
后端·python
敲代码的嘎仔2 小时前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
江华森3 小时前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python
杜子不疼.3 小时前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
VIP_CQCRE3 小时前
用 Ace Data Cloud 快速接入 OpenAI Chat Completions:对话、流式、多轮和多模态一篇打通
python·ai·openai·api·教程
AOwhisky3 小时前
Python 学习笔记(第三期)——流程控制:条件判断与循环结构
运维·笔记·python·学习·云原生·流程控制·循环