Pandas resample方法异常:首尔共享单车节假日租车量统计问题
问题原因分析
核心原因:resample的连续日期生成特性
当你按「筛选Holiday=0记录 → resample('D').sum()按日统计」的逻辑操作时,resample('D')会自动生成覆盖原数据时间索引首尾的所有连续日期,而非仅保留筛选后有数据的日期。如果某一天没有任何Holiday=0的记录(比如当天全是Holiday=1的记录,或当天无任何租车数据),对该日期执行sum()计算会得到0值,因此这些日期会被保留在结果中,且对应租车总量为0。
为什么统计Holiday=1时结果正常?
原数据中Holiday=1的日期数量较少,且这些日期基本都存在符合条件的租车记录;而那些没有Holiday=1记录的日期,resample后求和得到0,但你可能在后续处理中(比如默认过滤空值、手动筛选非0值)移除了这些行,或者原数据中这些日期本身未被纳入时间索引范围。
验证与解决思路
- 验证:查看筛选
Holiday=0后的数据集,检查2017-12-23当天是否存在任何记录。如果没有,那resample后该日期的总量自然为0。 - 解决:若仅需保留有
Holiday=0记录的日期,可在resample后添加筛选:resample('D').sum().query('租车总量 > 0'),或使用dropna()(若空值被标记为NaN而非0)。
内容的提问来源于stack exchange,提问作者M.Arya
相关产品推荐
相关产品推荐

