如何在Pandas中基于月份列数值新增对应季节标识的新列
解决方法
你当前的DataFrame以Month作为行索引,可通过以下两种常用方式实现季节列新增,匹配你给出的规则:12、1、2月为冬季,3-5月为春季,6-8月为夏季,9-11月为秋季:
- 方法1:字典映射(逻辑直观,自定义修改方便)
# 定义月份-季节映射规则 season_dict = { 1: '冬季', 2: '冬季', 12: '冬季', 3: '春季', 4: '春季', 5: '春季', 6: '夏季', 7: '夏季', 8: '夏季', 9: '秋季', 10: '秋季', 11: '秋季' } # 索引映射生成新列 df['Season'] = df.index.map(season_dict)
- 方法2:
pd.cut分箱(适合规则统一的批量分类场景,代码更简洁)
import pandas as pd # 定义分箱边界和对应标签,right=True表示区间左开右闭 bins = [0, 2, 5, 8, 11, 12] labels = ['冬季', '春季', '夏季', '秋季', '冬季'] df['Season'] = pd.cut(df.index, bins=bins, labels=labels, right=True)
补充说明:如果后续你的
Month调整为普通数据列而非索引,只需要将上述代码中的df.index替换为df['Month']即可正常运行。
内容的提问来源于stack exchange,提问作者jros112
相关产品推荐
相关产品推荐

