使用pandas如何基于其他列的不同条件新增财政年度(FY)列
实现方案(基于pandas环境)
直接按以下步骤操作即可得到你要的结果:
- 先将
Date列转换为datetime格式,方便提取年月数值 - 按照财年规则计算:月份大于等于7时,财年年份为实际年份+1,否则等于实际年份
- 取财年年份的后两位,拼接前缀
FY生成目标列
import pandas as pd # 请先替换下方代码为你自己的原始DataFrame定义 df = pd.DataFrame([ ["04/21/2019", "April"], ["07/03/2019", "July"], ["01/05/2018", "January"], ["09/23/2019", "September"] ], columns=["Date", "Month"]) # 转换日期格式 df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y') # 生成FY列,用向量化运算效率更高,适合大数据量场景 df['fy_year'] = df['Date'].dt.year + (df['Date'].dt.month >= 7).astype(int) df['FY'] = 'FY' + df['fy_year'].astype(str).str[-2:] # 不需要的中间列可以删除 df = df.drop(columns=['fy_year'])
运行后输出的df就完全匹配你给出的期望结果。
内容的提问来源于stack exchange,提问作者alwayzconfused
相关产品推荐
相关产品推荐

