如何基于Pandas DataFrame的DateTimeIndex行应用不同函数
基于Pandas DateTimeIndex应用自定义函数的实现方法
针对你的需求,这里提供几种实用的实现方式,可根据do_some()和do_other()的具体用途选择:
1. 按年份分组处理(适合批量操作年份数据)
如果你的do_some()和do_other()是针对对应年份的整组数据进行操作,可以通过groupby按年份分组后执行函数:
# 按索引年份分组遍历 for year, group_df in df.groupby(df.index.year): func(year) # 若函数需要处理对应年份的数据,可修改func参数并传入分组后的DataFrame # func(year, group_df)
2. 对每个索引元素单独应用函数
如果需要为每一行的年份单独执行函数,可提取索引的年份后用map或apply:
# 提取索引年份并批量应用函数 df.index.year.map(func) # 或者用lambda转换索引为年份后传入函数 df.index.apply(lambda idx: func(idx.year))
3. 直接通过布尔索引筛选操作(适合针对性行操作)
如果do_some()和do_other()是要对对应年份的行执行特定数据操作,也可以直接用布尔索引筛选后处理:
# 筛选2023年的行并执行操作 do_some(df[df.index.year == 2023]) # 筛选其他年份的行并执行操作 do_other(df[df.index.year != 2023])
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

