You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Pandas Series中的周末对应数值?

移除Pandas时间序列中的周末数据

问题描述

我拥有一组每日数值,希望移除周末(周六+周日)时段及其对应的数值,请问该如何操作?感谢解答。

用户提供的初始化代码:

df=pd.read_excel(input_file, sheet_name='daily', usecols='A:D', na_values='ND', index_col=0, header=0)
df.index.names = ['Period']
df.index = pd.to_datetime(df.index)
 
q= pd.Series(df['Values'], index=df.index)

示例数据:

PeriodValues
20-Jan-893
27-Jan-894
3-Feb-892
10-Feb-895
17-Feb-893
24-Feb-895
3-Mar-895
10-Mar-896
17-Mar-894
24-Mar-895
31-Mar-897
7-Apr-896
14-Apr-896
21-Apr-894
28-Apr-897
5-May-895
12-May-896
19-May-895
26-May-897
2-Jun-897

解决方案

Pandas的DatetimeIndex自带dayofweek(或weekday)属性,可直接用来筛选工作日数据:

  • dayofweek返回0(周一)到6(周日)的整数,其中5=周六,6=周日

方法1:筛选DataFrame的工作日数据

直接通过索引的dayofweek属性过滤:

# 保留周一到周五的数据,自动移除周末
df_weekday = df[df.index.dayofweek < 5]

方法2:筛选Series的工作日数据

针对你定义的Series q,操作逻辑完全一致:

q_weekday = q[q.index.dayofweek < 5]

可选:查看被移除的周末数据

如果需要确认哪些数据是周末,可以反向筛选:

weekend_data = df[df.index.dayofweek >= 5]

补充说明

weekday属性和dayofweek功能完全相同,也可以替换使用:

df_weekday = df[df.index.weekday < 5]

内容的提问来源于stack exchange,提问作者123456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:46:14