摘要:前几天帮同事解决了个难题:她做市场周报时,要手动从5个Excel表复制数据,再整理成可视化图表,每天花3小时还总出错。我给她写了段20行的Python代码,现在她导入数据后点一下运行,10秒就能出表出图。其实Python没那么复杂,很多职场问题,几行代码就能解
前几天帮同事解决了个难题:她做市场周报时,要手动从5个Excel表复制数据,再整理成可视化图表,每天花3小时还总出错。我给她写了段20行的Python代码,现在她导入数据后点一下运行,10秒就能出表出图。其实Python没那么复杂,很多职场问题,几行代码就能解决。今天就分享3个能直接套用的实操案例,每个都附核心代码和步骤,看完就能用。
痛点
每月要核对20个部门的考勤表(含“姓名、日期、打卡时间”),手动找“迟到(早于9:00)、漏打卡”记录,3天才能做完,还容易看漏。
Python实操步骤(附核心代码)
1. 准备工具:安装Python后,用pip install pandas装数据分析库(电脑终端输入即可)。
2. 核心代码(直接复制修改路径就能用):
import pandas as pd # 导入数据分析库
# 1. 读取所有考勤表(把20个表放同一个“考勤文件夹”里)
import os
file_path = "C:/工作文件/考勤文件夹" # 替换成你的文件夹路径
all_files = [f for f in os.listdir(file_path) if f.endswith(".xlsx")]
# 2. 批量处理每个表,标记异常记录
for file in all_files:
df = pd.read_excel(f"{file_path}/{file}") # 读取单个表
# 标记迟到(假设打卡时间列叫“打卡时间”,转成时间格式后判断)
df["打卡时间"] = pd.to_datetime(df["打卡时间"], format="%H:%M:%S", errors="coerce")
df["是否迟到"] = df["打卡时间"].apply(lambda x: "是" if x > pd.to_datetime("09:00:00") else "否")
# 标记漏打卡(空值即漏打)
df["是否漏打卡"] = df["打卡时间"].isnull.apply(lambda x: "是" if x else "否")
# 3. 保存处理后的表(加“已处理”前缀,方便区分)
df.to_excel(f"{file_path}/已处理_{file}", index=False)
print("所有考勤表处理完成!")
3. 效果:20个表5分钟处理完,异常记录自动标红(可在Excel里设置条件格式),不用再逐行核对。
痛点
想监控3家竞品的某款产品价格,每天要打开3个网站复制粘贴,手动做对比表,耗时1小时。
1. 准备工具:安装pip install requests beautifulsoup4 pandas(爬虫+分析。
2. 核心代码(以爬取公开电商商品页为例,需替换实际URL):
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 1. 定义要爬取的竞品URL(这里用示例链接,需替换成你要监控的真实商品页)
product_urls = {
"竞品A": "https://example.com/product1",
"竞品B": "https://example.com/product2",
"竞品C": "https://example.com/product3"
}
# 2. 爬取每个竞品的价格
price_data =
for name, url in product_urls.items:
response = requests.get(url) # 发送请求获取页面
soup = BeautifulSoup(response.text, "html.parser")
# 提取价格(需根据目标网站的HTML结构修改,用F12查看元素)
# 示例:假设价格在class为“price”的标签里
price = soup.find("span", class_="price").text.strip
price_data.append({"竞品名称": name, "价格": price, "日期": pd.Timestamp.now.strftime("%Y-%m-%d")})
# 3. 生成对比表并保存
df = pd.DataFrame(price_data)
df.to_excel("竞品价格对比表.xlsx", index=False)
print("竞品价格爬取完成,已保存对比表!")
3. 注意:爬取前确认网站是否允许(查看robots协议),避免频繁请求导致IP被封。
4. 效果:每天运行1次代码,自动获取最新价格并生成表格,还能加代码自动计算“价格差”“降幅”,不用再手动查。
痛点
每月要给50个客户发催款邮件,手动写主题、填“客户名称+欠款金额”,1小时才能发完,还容易写错信息。
1. 准备工具:安装pip install pandas smtplib(邮件发送库),先在邮箱设置里开启“SMTP服务”(如QQ邮箱需获取授权码)。
2. 核心代码(需替换邮箱信息):
import pandas as pd
import smtplib
from email.mime.text import MIMEText
# 1. 读取客户欠款数据(Excel表含“客户名称、邮箱、欠款金额”)
df = pd.read_excel("客户欠款表.xlsx")
# 2. 配置邮箱信息(替换成你的发件邮箱)
smtp_server = "smtp.qq.com" # QQ邮箱SMTP服务器,其他邮箱需修改(如163是smtp.163.com)
smtp_port = 587 # 端口号
sender_email = "你的邮箱@qq.com"
sender_password = "你的邮箱授权码" # 不是登录密码,是SMTP授权码
# 3. 批量发送催款邮件
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls # 开启加密
server.login(sender_email, sender_password)
for _, row in df.iterrows:
# 邮件内容(动态填充客户信息)
subject = f"【催款通知】{row['客户名称']},您有{row['欠款金额']}元待支付"
content = f"""
尊敬的{row['客户名称']}:
您好!截至今日,您尚有{row['欠款金额']}元货款未支付,请于3日内完成付款,感谢配合!
如有疑问,请随时联系我们。
"""
# 构造邮件
msg = MIMEText(content, "plain", "utf-8")
msg["Subject"] = subject
msg["From"] = sender_email
msg["To"] = row["客户邮箱"]
# 发送邮件
server.send_message(msg)
print(f"已给{row['客户名称']}发送催款邮件!")
print("所有催款邮件发送完成!")
3. 效果:50个客户的邮件5分钟发完,信息自动填充,不会出错,还能加代码记录“发送状态”,方便后续跟踪。
1. 不用死记代码:把上面的案例保存下来,根据自己的工作需求修改“文件路径、表格列名、网站标签”即可,用得多了自然就熟了。
2. 遇到报错别慌:最常见的报错是“路径错了”“库没装”,复制报错信息去百度,90%的问题都有现成答案。
其实职场里用Python,不用学复杂的算法和开发,只要解决“重复、耗时、易出错”的问题就行。上面3个案例,覆盖了行政、市场、财务的高频需求,你可以挑一个和自己工作相关的,试着跑一遍代码——会发现比想象中简单多了。
需要我针对你具体的工作场景(比如电商运营、教育机构行政),再定制一个Python实操案例吗?这样你能直接套用在日常工作里。
来源:绿叶菜