首页 > 解决方案 > 按工作日选择数据框的行范围(python)

问题描述

在此处输入图像描述

大家好!!请看这张图片,让我知道如何按工作日选择数据框的行范围。请在此处写下代码。

标签: pythonpandas

解决方案


如果你有这样的数据框:


df = pd.DataFrame(data={
    "WTI": [1, 2, 3, 4, 5, 6],
    "Brent": [1, 2, 3, 4, 5, 6]   
}, index=["2008-01-01", "2008-01-02", "2008-01-03", "2008-01-04", "2008-01-05", "2008-01-06"])

df

# output
    WTI Brent
2008-01-01  1   1
2008-01-02  2   2
2008-01-03  3   3
2008-01-04  4   4
2008-01-05  5   5
2008-01-06  6   6

首先将索引的日期类型更改为日期时间:

df.index = pd.to_datetime(df.index)

接下来,您可以根据需要对其进行过滤:

df[df.index.day_of_week.isin([1, 2, 3, 4])]

# output
    WTI Brent
2008-01-01  0.00    0.00
2008-01-02  99.64   97.01
2008-01-03  99.17   98.45
2008-01-04  1.00    5.00


df[df.index.day_name().isin(["Friday"])]

# output

WTI Brent
2008-01-04  4   4

如果 index 是 pandas.core.indexes.datetimes.DatetimeIndex 类型,你有很多过滤它的可能性。检查文档:https ://pandas.pydata.org/docs/reference/api/pandas.DatetimeIndex.html


推荐阅读