Pandas提取季度数据问题:多月份筛选结果为空求解决
问题原因与解决方案
原因分析
你用&(逻辑与)连接三个筛选条件,这要求同一行的日期字符串必须同时包含"2022-01"、"2022-02"、"2022-03",但你的数据里每个日期只属于单个月份,没有能同时满足三个条件的记录,所以返回空数据集。
解决办法
方式1:直接用字符串匹配(无需转换列类型)
把逻辑与&换成逻辑或|,或者用正则表达式简化匹配:
# 用逻辑或连接多个月份条件 fd_pri_tri = df_fresh[ df_fresh['criacao'].str.contains('2022-01') | df_fresh['criacao'].str.contains('2022-02') | df_fresh['criacao'].str.contains('2022-03') ] # 更简洁的正则匹配写法 fd_pri_tri = df_fresh[df_fresh['criacao'].str.contains('2022-(01|02|03)')]
方式2:转为datetime类型筛选(推荐,后续日期操作更灵活)
先将criacao列从object类型转为datetime类型,再按年份和月份筛选:
import pandas as pd # 转换列类型 df_fresh['criacao'] = pd.to_datetime(df_fresh['criacao']) # 筛选2022年1-3月的数据 fd_pri_tri = df_fresh[ (df_fresh['criacao'].dt.year == 2022) & (df_fresh['criacao'].dt.month.isin([1, 2, 3])) ]
内容的提问来源于stack exchange,提问作者Gustavo Felippe de Oliveira
相关产品推荐
相关产品推荐

