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

相关推荐
星云穿梭4 小时前
用Python写一个带图形界面的学生管理系统——完整教程
python
金銀銅鐵4 小时前
用 Pygame 实现 15 puzzle
python·数学·游戏
黄忠10 小时前
大模型之LangGraph技术体系
python·llm
hboot1 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
用户8356290780511 天前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
用户8356290780511 天前
用 Python 自动化 PowerPoint 演讲者备注添加
后端·python
黄忠1 天前
01-系统架构设计-LangGraph状态机与多源异构RAG
python
zzzzzz3101 天前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
砍材农夫1 天前
python环境|conda安装和使用(2)
后端·python
程序员龙叔2 天前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试