You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python自动生日祝福项目:如何匹配CSV列值获取前两列数据

实现方案

直接用Pandas的条件筛选语法匹配对应日期的行,无需手动提取月份、日期列表遍历,代码更简洁高效。

前置处理注意

你的CSV表头字段后带多余空格,读取时加skipinitialspace=True参数自动清除字段前后空格,避免后续调用列名时报错。

完整实现代码

import pandas as pd
import datetime

# 1. 读取生日文件,自动清除字段空格
birthday_df = pd.read_csv("birthdays.csv", skipinitialspace=True)

# 2. 获取当前月、日(你已有校验逻辑可直接用自己的变量替换)
today = datetime.datetime.now()
current_month = today.month
current_day = today.day

# 3. 筛选月、日匹配的所有行
matched_birthdays = birthday_df[(birthday_df["month"] == current_month) & (birthday_df["day"] == current_day)]

# 4. 遍历匹配结果,取出姓名、邮箱传给发邮件函数
for _, row in matched_birthdays.iterrows():
    # 第一列是name,第二列是email
    recipient_name = row["name"]
    recipient_email = row["email"]
    # 在这里调用你的发邮件函数即可,示例:send_birthday_email(recipient_name, recipient_email)

可选简化写法

如果只需要提取姓名和邮箱两列,可以在筛选后直接转成元组列表调用:

# 直接生成(姓名, 邮箱)的元组列表
matched_contacts = matched_birthdays[["name", "email"]].values.tolist()
for name, email in matched_contacts:
    # 调用发邮件逻辑
    pass

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:21:02