希望,这个问题比我今年早些时候的第一个问题好得多了-7!(其中我真的很感激,因为它有助于突出我的无知)
我想要实现的是编写一个简单的代码行,我可以在我工作的任何数据帧中调用以获得正确的周数或星期几.
目前,请考虑以下数据框:
import pandas as pd
import numpy as np
days = pd.date_range('01/01/2018', '01/04/2019', freq='D')
df = pd.DataFrame({'Date': days})
print(df.head(5))
Date
0 2018-01-01
1 2018-01-02
2 2018-01-03
3 2018-01-04
4 2018-01-05
Run Code Online (Sandbox Code Playgroud)
现在,我想使用以下代码行创建公司周数:
请注意我的公司使用金融日历,所以4月是第1周,但第1天是星期六(你们中间的精明人员可能已经知道我的问题了)!因此,对于2018年,31/03/18实际上是我的第1周第1周财政年度2019年周六,我们最多只有53周.
df['Week'] = np.where(df['Date'].dt.month >= 4, (df['Date'] + pd.Timedelta(days=2)).dt.week - 13,
(df['Date'] + pd.Timedelta(days=2)).dt.week + 39)
print(df)
Date Week
0 2018-01-31 44
1 2018-02-01 44
2 2018-02-02 44
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都好吗?
所以让我们检查12月
dec = df.Date.dt.month == 12
print(df.loc[dec].tail(5))
Date Week
330 2018-12-27 39
331 2018-12-28 39
332 …Run Code Online (Sandbox Code Playgroud)