pandas DataFrame中按指定月日范围批量设置列值的实现方法
实现方案
基于Python Pandas(推荐处理批量时间序列数据)
首先确保Date列转换为Pandas datetime格式后,按如下代码操作即可:
import pandas as pd # 加载数据,可替换为你自己的数据加载逻辑 df = pd.read_csv("your_data.csv") # 转换日期列为datetime格式,如已转换可跳过该步骤 df["Date"] = pd.to_datetime(df["Date"]) # 构造匹配条件 # 条件1:4月且日期≥25,如需严格大于25可删除等号 cond_apr = (df["Date"].dt.month == 4) & (df["Date"].dt.day >= 25) # 条件2:5月且日期≤5,如需严格小于5可删除等号 cond_may = (df["Date"].dt.month == 5) & (df["Date"].dt.day <= 5) # 给符合条件的行col1赋值为True df.loc[cond_apr | cond_may, "col1"] = True
- 该代码会自动匹配2010-2020年所有符合月日要求的行,无需按年份单独循环处理
- 最终你可以用
df.to_csv("processed_data.csv", index=False)导出处理后的数据
基于Excel
如果数据存储在Excel表格中,可直接用公式实现:
- 假设日期在A列,col1在B列,在B2单元格输入公式:
=OR(AND(MONTH(A2)=4,DAY(A2)>=25),AND(MONTH(A2)=5,DAY(A2)<=5)) - 将公式下拉填充到所有行,即可自动返回对应的TRUE/FALSE值
内容的提问来源于stack exchange,提问作者Daniil Yefimov
相关产品推荐
相关产品推荐

