• Python自动化之手把手教你处理处理账单


    本文首发公众号:CoXie聊办公自动化,
    致力于打造别人家的公众号

    原文地址:[请点击这里超链接]

    前言

     很多人都不知道怎么处理或者是不知道自己每个月的钱的去处在哪。故本次为大家带来如何用Python处理自己的微信账单(支付宝账单),干货满满。
     这里以4月份的200条数据为例子,数据仅供参考

    如何导出自己的微信账单?

    百度的教程已经不适用,具体教程请看下方

    • 1.找到微信支付
    • 2.点击我的账单
    • 3账单明细
    • 4.右上角的常见问题
    • 5.最上方的下载账单
    • 6.点击用于个人对账
    • 7.输入邮箱地址

    稍后账单会自动发送至邮箱中

    拿到账单后如何进行下一步操作?

    首先,不管是写什么代码,都必须要知道自己需要用到的第三方库是什么,本次会用到以下第三方库,请预先导入。

    • pandas
    • openpyxl
    • time

    CMD导入方式:

    • pip install pandas
    • pip install openpyxl
    • pip install time

    Pycharm 导入方式:

    在这里插入图片描述

    处理xlsx文件

    首先,肯定还是先读取文件,在这我们用load_workbook(文件名 +.xlsx) 进行读取目标Excel
    在这里插入图片描述
    接下来,获取当前工作的表,在这里不用关心表名是什么,因为利用

    wb = load_workbook(file_name + '.xlsx')
    ws = wb.active
    

    已经自动获取了。

    删除无关数据
    ws.delete_rows(1,16) #删除第 1 行起的 16 行(含起始)
    ws.delete_cols(9,2) #删除第 9 列起的 2 列(含起始)
    

    在这里为了代码效果的演示明显,我已经将上面处理好的数据,另存为一个xlsx文件。
    文件名称为:file_name + 现在的时间 +.xlsx
    剩下的就是处理你想获取的数据,当然,处理的数据肯定以上面处理好的xlsx文件进行二次处理。

    二次处理xlsx

    data1=test[-test['交易类型'].str.contains('微信红包')] #然后再删除列里有微信红包的数据
    data1=data1[-data1['交易类型'].str.contains('转入零钱通')] #然后再删除列里转入零钱通里面的
    

    最后,将二次处理的数据重新保存一份,保存格式还是file_name + 现在的时间 +.xlsx

    后言

    本次的分享到这里已经结束了,创作不易,请勿抄袭,转载请告知博主或注明转载来处
    最后,完整代码在这里

    import pandas as pd
    import openpyxl
    from pandas import Series,DataFrame
    from openpyxl import *
    import time, datetime
    
    file_name = '文件名'
    now = time.strftime("%Y%m%d%H%M%S", time.localtime())
    wb = load_workbook(file_name + '.xlsx')
    ws = wb.active
    ws.delete_rows(1,16) #删除第 1 行起的 16 行(含起始)
    ws.delete_cols(9,2) #删除第 9 列起的 2 列(含起始)
    wb.save(file_name + ' - ' + now + ' - 1 - 已删除无效行和列.xlsx')
    
    test = pd.read_excel(file_name + ' - ' + now + ' - 1 - 已删除无效行和列.xlsx')
    data1=test[-test['交易类型'].str.contains('微信红包')] #然后再删除列里有微信红包的数据
    data1=data1[-data1['交易类型'].str.contains('转入零钱通')] #然后再删除列里转入零钱通里面的
    data1.to_excel(file_name + ' - ' + now + ' - 2 - 红包和零钱通.xlsx', index=False) #将处理后的结果写入新表
    
    print("亲,已全部删除无效数据")
    

    彩蛋

    在公众号后台,都有小伙伴问:有没有什么好的毕设项目? 相信这也是很多小伙伴想要的。还不收藏点赞吗?

  • 相关阅读:
    LeetCode 32. 最长有效括号(Longest Valid Parentheses)
    LeetCode 141. 环形链表(Linked List Cycle)
    LeetCode 160. 相交链表(Intersection of Two Linked Lists)
    LeetCode 112. 路径总和(Path Sum)
    LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
    LightGBM新特性总结
    sql service 事务与锁
    C#泛型实例详解
    C# 中的委托和事件(详解)
    C# DateTime日期格式化
  • 原文地址:https://www.cnblogs.com/CoXieLearnPython/p/14868384.html
Copyright © 2020-2023  润新知