晚上的小伙子,希望這個(gè)問題比我今年早些時(shí)候的第一個(gè)得到 -7 的問題要好!(我真的很感激,因?yàn)樗兄谕怀鑫业臒o知)我想要實(shí)現(xiàn)的是編寫一行巧妙的代碼,我可以在我工作的任何數(shù)據(jù)幀中調(diào)用它以獲得正確的周數(shù)或星期幾?,F(xiàn)在,請考慮以下數(shù)據(jù)框:import pandas as pdimport numpy as npdays = pd.date_range('01/01/2018', '01/04/2019', freq='D')df = pd.DataFrame({'Date': days})print(df.head(5)) Date0 2018-01-011 2018-01-022 2018-01-033 2018-01-044 2018-01-05現(xiàn)在,我想使用以下代碼行創(chuàng)建公司周數(shù):請注意,我的公司使用財(cái)務(wù)日歷,所以 4 月是第 1 周,但第 1 天是星期六(精明的人可能已經(jīng)知道我的問題)!所以對于 2018 年,31/03/18 實(shí)際上是我 2019 財(cái)政年度的第 1 周第 1 周,因?yàn)樗切瞧诹覀冏疃嘀荒苡?53 個(gè)星期。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 Week0 2018-01-31 441 2018-02-01 442 2018-02-02 44到目前為止一切都很好吧?所以讓我們檢查十二月dec = df.Date.dt.month == 12print(df.loc[dec].tail(5)) Date Week330 2018-12-27 39331 2018-12-28 39332 2018-12-29 -12333 2018-12-30 -12334 2018-12-31 -12問題,如果我理解這是 pd.Timedelta 試圖正確放置我的周數(shù),但由于我的初始公式month >= 4被放置為 -12此外,3 月 31 日應(yīng)該在第 1 周而不是第 53 周作為星期六。假設(shè)這是許多人可能已經(jīng)從事過的一項(xiàng)非常常見的任務(wù),有沒有人有一種方法或方式以 Pythonic 的方式來處理這個(gè)問題。我自己的解決方案是手動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)框并手動(dòng)修復(fù)周、日和財(cái)政年度,放入 noSQL 或 SQL dB 并在每個(gè) dF 中調(diào)用它并將周數(shù)合并到我的報(bào)告中。
嘗試寫幾行代碼來創(chuàng)建一個(gè)主日期查找表
慕工程0101907
2021-09-11 19:28:07