摘要:你是不是也有过这样的经历:月底翻遍账单,不知道钱花在哪;想攒钱却总被各种“意外支出”打乱计划;夫妻间因为生活费分配、购物消费吵得面红耳赤?
你是不是也有过这样的经历:月底翻遍账单,不知道钱花在哪;想攒钱却总被各种“意外支出”打乱计划;夫妻间因为生活费分配、购物消费吵得面红耳赤?
我身边有个朋友小林,之前就是典型的“财务混乱户”——工资到账没几天就花得七七八八,老公买1000块的衣服不商量,她要800块家用却等半个月。直到她用Python做了3件事,不仅理清了家庭收支,3个月还存下2万,连夫妻间的财务矛盾都少了。
今天就把这份“小白也能学会的Python财务管理教程”分享给你,不用懂复杂代码,跟着复制粘贴就能用,看完就能解决90%的家庭财务问题。
很多人习惯用Excel记账,但实际用起来总有痛点:
• 手动录入账单太麻烦,漏记一笔就乱了;
• 想统计“每月餐饮花多少”“老公买衣服占比”,要手动拉公式,改一个数就得重算;
• 手机拍的消费小票,没法直接导进Excel,还得对着数字敲键盘。
而Python刚好能解决这些问题,关键是零基础也能学——不需要你懂编程原理,只要会复制代码、改几个参数,就能自动完成记账、统计、分析,甚至生成可视化报表。
举个简单的例子:你每月要统计“家庭各项目支出占比”,用Excel可能要1小时,用Python只要3行代码,10秒就能出结果,还能自动生成饼图,哪笔钱花多了一眼就看清。
接下来,我们直接上3个实战案例,每个案例都附完整代码和操作步骤,你跟着做就能立刻用起来。
痛点解决
小林之前最头疼的就是“记不住花了什么钱”——早上买早餐付现金、中午点外卖用微信、晚上超市购物刷信用卡,到了月底根本凑不全账单,夫妻间还总因为“你这笔钱花在哪”吵架。
用Python做一个“自动记账工具”后,她只要把微信、支付宝账单导出,代码就能自动导入数据,还能按“餐饮、交通、购物、家用”分类,连现金支出都能拍照录入,再也不用手动记。
具体操作步骤(附代码)
第一步:准备工具
首先要安装Python(新手直接搜“Python 3.9 安装教程”,跟着下一步点就行),然后安装2个常用库(用来处理数据和图片),打开电脑的“命令提示符”,复制粘贴下面2行代码,按回车就能安装:
pip install pandas
pip install pillow
第二步:导出手机账单
1. 微信账单导出:打开微信→“我”→“支付”→“钱包”→“账单”→右上角“导出账单”→选“用于个人对账”,会发送到你邮箱,下载后是Excel文件;
2. 支付宝账单导出:打开支付宝→“我的”→“账单”→右上角“…”→“开具交易流水证明”→选“个人流水”,同样下载Excel文件。
第三步:用Python自动导入+分类账单
复制下面的代码,粘贴到Python的“IDLE”(安装后自带的工具)里,然后改3个地方:
• 把“微信账单路径”“支付宝账单路径”改成你下载的文件位置(比如“C:/Users/Desktop/微信账单.xlsx”);
• 现金支出如果有拍照的,把“现金账单图片路径”改成照片位置。
# 自动导入微信、支付宝账单并分类
import pandas as pd
from PIL import Image
import pytesseract # 用来识别图片里的文字(需要额外安装:pip install pytesseract)
# 1. 导入微信账单
wechat_bill = pd.read_excel("微信账单路径.xlsx")
# 2. 导入支付宝账单
alipay_bill = pd.read_excel("支付宝账单路径.xlsx")
# 3. 识别现金账单图片(比如小票照片)
cash_img = Image.open("现金账单图片路径.jpg")
cash_text = pytesseract.image_to_string(cash_img, lang='chi_sim') # 识别中文
# 4. 按支出类型分类(可根据自己情况修改分类)
def classify_expense(description):
food_keywords = ["早餐", "午餐", "晚餐", "外卖", "超市"]
traffic_keywords = ["打车", "公交", "地铁", "油费"]
shopping_keywords = ["衣服", "鞋子", "化妆品"]
home_keywords = ["水电", "燃气", "房租", "家用"]
if any(keyword in description for keyword in food_keywords):
return "餐饮"
elif any(keyword in description for keyword in traffic_keywords):
return "交通"
elif any(keyword in description for keyword in shopping_keywords):
return "购物"
elif any(keyword in description for keyword in home_keywords):
return "家用"
else:
return "其他"
# 给账单加“支出类型”列
wechat_bill["支出类型"] = wechat_bill["商品"].apply(classify_expense)
alipay_bill["支出类型"] = alipay_bill["商品名称"].apply(classify_expense)
# 合并所有账单,保存为新文件(存在桌面)
all_bill = pd.concat([wechat_bill, alipay_bill])
all_bill.to_excel("C:/Users/Desktop/家庭总账单.xlsx", index=False)
print("账单导入完成!已保存到桌面")
第四步:查看结果
运行代码后,你会在桌面看到“家庭总账单.xlsx”,打开后会发现每笔支出都多了“支出类型”,比如“老公买衣服”会被分到“购物”,“交电费”会分到“家用”,再也不用手动分类了。
痛点解决
小林之前和老公吵得最多的,就是“你总说我乱花钱,到底谁花得多”。用Excel统计时,要手动筛选“老公的支出”“老婆的支出”,还得算占比,耗时又容易错。
用Python做了“支出统计工具”后,只要运行代码,就能自动算出“每人每月花了多少”“各项目支出占比”,还能生成图表,比如老公买衣服花了1000块,占总支出的15%,图表里一看就清楚,再也不用争。
具体操作步骤(附代码)
第一步:用案例1的“家庭总账单”
我们直接用前面生成的总账单,里面已经有“支出类型”“付款方式”(比如微信绑定的是老公的卡,支付宝是老婆的卡),所以先在账单里加一列“付款人”,比如“老公”“老婆”。
第二步:复制代码生成统计报表+图表
# 自动统计家庭支出并生成可视化图表
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文显示(不然图表里的字会是乱码)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 导入总账单
all_bill = pd.read_excel("C:/Users/Desktop/家庭总账单.xlsx")
# 1. 统计每人每月支出
person_monthly = all_bill.groupby(["付款人", all_bill["交易时间"].dt.to_period("M")])["金额"].sum
print("每人每月支出:")
print(person_monthly)
# 2. 统计各支出类型占比
type_ratio = all_bill.groupby("支出类型")["金额"].sum / all_bill["金额"].sum * 100
print("\n各支出类型占比(%):")
print(type_ratio)
# 3. 生成图表(饼图:支出类型占比;柱状图:每人每月支出)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))
# 饼图:支出类型占比
ax1.pie(type_ratio, labels=type_ratio.index, autopct='%1.1f%%', startangle=90)
ax1.set_title("家庭支出类型占比")
# 柱状图:每人每月支出
person_monthly_unstacked = person_monthly.unstack(fill_value=0)
person_monthly_unstacked.plot(kind='bar', ax=ax2)
ax2.set_title("每人每月支出对比")
ax2.set_xlabel("月份")
ax2.set_ylabel("支出金额(元)")
ax2.legend(title="付款人")
# 保存图表到桌面
plt.tight_layout
plt.savefig("C:/Users/Desktop/家庭支出分析图.png")
plt.close
print("\n统计完成!图表已保存到桌面")
第三步:看结果,解决财务矛盾
运行后会出现2个结果:
1. 文字版统计:比如“老公-2024-05:5800元,老婆-2024-05:3200元”,清楚看到每人花了多少;
2. 图表:左边饼图显示“购物占25%、餐饮占30%”,右边柱状图对比两人每月支出。
小林就是靠这个图表,和老公心平气和地谈——图表里清楚显示老公“购物支出1200元(其中衣服1000元)”,而家用支出只有500元,老公看完也没话说,之后主动调整了消费比例。
痛点解决
“想攒钱却没计划”是很多人的通病,小林之前也是:每月工资到账,先花再说,月底一看没剩多少。用Python做了“预算工具”后,她设定“每月存3000元”,代码会自动分配各项目预算,超支就提醒,3个月就存下2万。
具体操作步骤(附代码)
第一步:设定家庭预算目标
比如你家每月收入1.5万,想存5000元,那么可支出金额就是1万,然后分配到各项目:餐饮3000元、交通1000元、购物2000元、家用3000元、其他1000元。
第二步:复制代码生成预算表+超支提醒
# 自动生成月度预算+超支提醒
import pandas as pd
from datetime import datetime
# 1. 设定本月预算(可根据家庭情况修改)
this_month = datetime.now.strftime("%Y-%m")
budget = {
"支出类型": ["餐饮", "交通", "购物", "家用", "其他"],
"预算金额(元)": [3000, 1000, 2000, 3000, 1000],
"本月已花(元)": [0, 0, 0, 0, 0],
"剩余预算(元)": [0, 0, 0, 0, 0]
}
# 2. 导入本月账单,计算各类型已花金额
all_bill = pd.read_excel("C:/Users/Desktop/家庭总账单.xlsx")
all_bill["交易月份"] = all_bill["交易时间"].dt.strftime("%Y-%m")
this_month_bill = all_bill[all_bill["交易月份"] == this_month]
spent_by_type = this_month_bill.groupby("支出类型")["金额"].sum
# 3. 填充“本月已花”和“剩余预算”
budget_df = pd.DataFrame(budget)
for i, expense_type in enumerate(budget_df["支出类型"]):
if expense_type in spent_by_type.index:
budget_df.at[i, "本月已花(元)"] = spent_by_type[expense_type]
budget_df.at[i, "剩余预算(元)"] = budget_df.at[i, "预算金额(元)"] - budget_df.at[i, "本月已花(元)"]
# 4. 检查超支项目
overspent = budget_df[budget_df["剩余预算(元)"]
if not overspent.empty:
print(f"⚠️ {this_month}超支提醒:")
for _, row in overspent.iterrows:
print(f"- {row['支出类型']}:超支{abs(row['剩余预算(元)'])}元(已花{row['本月已花(元)']}元,预算{row['预算金额(元)']}元)")
else:
print(f"✅ {this_month}暂无超支项目")
# 5. 计算本月可存金额(假设月收入15000元)
monthly_income = 15000
total_spent = this_month_bill["金额"].sum
can_save = monthly_income - total_spent
print(f"\n {this_month}预计可存金额:{can_save}元(收入{monthly_income}元 - 已花{total_spent}元)")
# 保存预算表到桌面
budget_df.to_excel(f"C:/Users/Desktop/{this_month}家庭预算表.xlsx", index=False)
print(f"\n预算表已保存到桌面:{this_month}家庭预算表.xlsx")
第三步:用预算表控制支出
运行后会得到:
• 超支提醒:比如“购物超支500元”,立刻知道要减少购物;
• 可存金额:比如“预计可存4500元”,离5000元目标差500元,接下来几天就能控制消费;
• 预算表:打印出来贴在冰箱上,全家都能看到各项目还剩多少预算。
小林就是这样,每月初定预算,中旬看一次超支情况,月底看可存金额,3个月就从“月光”变成“每月存3000元”,攒下的钱还提前还了部分房贷。
很多人看到“Python”就觉得难,其实小林一开始也是零基础,这些问题她都遇到过,你照着解决就行:
1. 安装库时提示“找不到pip”?
答:安装Python时,记得勾选“Add Python to PATH”(很多新手会漏),如果没勾,搜“Python添加环境变量”,跟着改一下就行。
2. 图片识别现金账单时,文字识别不准?
答:拍小票时尽量拍清晰,光线要好,不要有阴影;如果识别错了,手动在Excel里改一下就行,毕竟现金支出不多。
3. 代码运行出错,显示“文件找不到”?
答:把账单文件放在桌面,然后把代码里的“路径”改成“C:/Users/你的电脑用户名/Desktop/文件名.xlsx”,比如“C:/Users/小林/Desktop/微信账单.xlsx”。
很多人觉得“管钱”很麻烦,但小林说:“之前我和老公因为钱吵架,不是因为穷,是因为彼此都不知道对方的付出——他觉得自己赚钱辛苦,我觉得自己操持家务累。直到用Python理清了账单,我们才看到:他赚钱不容易,我管家也没乱花钱,之后反而更体谅对方了。”
其实Python只是一个工具,它帮我们解决的不只是“记账”的问题,更是“家庭财务透明”的问题——当每笔支出都清晰可见,当预算和存钱目标明确,夫妻间少了猜忌,多了默契,日子自然就顺了。
今天这3个案例,你不用一下子全学会,先从“自动记账”开始,用10分钟跑通代码,你会发现:管好家庭财务,真的没那么难。
来源:绿叶菜