簡體   English   中英

按月的工作日對 DataFrame 進行分組

[英]Group DataFrame by Business Day of Month

我正在嘗試對 Pandas DataFrame進行分組,該數據DataFrame的工作日(大約 22/月)按日期編制索引。

我想返回一個結果,其中包含 22 行,在`DataFrame 中具有某個值的平均值。

我可以按月的某天,但似乎無法弄清楚如何按工作日。

是否有一個函數可以返回某個日期的月份的工作日?

如果有人能提供一個簡單的例子,那將是最感激的。

假設您的日期在索引中(如果不使用“set_index”):

df.groupby(pd.TimeGrouper('B')) 

請參閱時間序列功能

我認為問題是按月的工作日分組 - 另一個答案似乎只是將數據重新采樣到最近的工作日(至少對我而言)。 此代碼返回一個具有 22 行的 groupby 對象

from datetime import date
import pandas as pd
import numpy as np

d = pd.Series(np.random.randn(1000), index=pd.bdate_range(start='01 Jan 2018', periods=1000))
def to_bday_of_month(dt):
    month_start = date(dt.year, dt.month, 1)
    return np.busday_count(month_start, dt)

day_of_month = [to_bday_of_month(dt) for dt in d.index.date]
d.groupby(day_of_month).mean()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM