如何筛选DataFrame中月份列与当前月份相等的行?
解决DataFrame按当前月份筛选整数类型列的问题
原代码的问题
time.strftime('%m')返回的是字符串类型(比如"10"),但你的月份列是整数类型,类型不匹配导致筛选不到数据- 筛选条件里用了列表
[time.strftime('%m')],Series和列表比较会引发错误的匹配逻辑 - 代码最后缺少闭合的括号
),存在语法错误
正确的解决步骤
将当前月份转为整数类型,和DataFrame里的列类型保持一致:
import time # 获取当前月份并转为整数 current_month = int(time.strftime('%m'))修正筛选语法,直接用整数进行相等判断,同时补全缺失的括号:
# 筛选月份列等于当前月份的行 filtered_df = Reg_10.loc[Reg_10['First Registration Status Date'] == current_month] filtered_df
额外说明
如果你的First Registration Status Date列是完整的datetime日期格式,而不是单独的月份整数,可以先提取月份再筛选:
# 假设列是datetime类型,先提取月份列 Reg_10['month'] = Reg_10['First Registration Status Date'].dt.month # 再筛选对应月份的行 filtered_df = Reg_10.loc[Reg_10['month'] == current_month]
内容的提问来源于stack exchange,提问作者Jorge -
相关产品推荐
相关产品推荐

