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

相关推荐
小小龙学IT1 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071572 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境3 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
\光辉岁月/3 小时前
5.java-数组
java·开发语言
Java后端的Ai之路3 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师3 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师3 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
谢亮_vipxieliang3 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
Zootopia6263 小时前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信