第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

過濾 pandas 數(shù)據(jù)框中的行,其中數(shù)據(jù)屬于從當(dāng)前季度開始到當(dāng)月月底的數(shù)據(jù)

過濾 pandas 數(shù)據(jù)框中的行,其中數(shù)據(jù)屬于從當(dāng)前季度開始到當(dāng)月月底的數(shù)據(jù)

繁花不似錦 2023-10-05 16:34:21
我正在嘗試調(diào)整我的數(shù)據(jù)框以查找季度至今 (QTD) 行。在下面的數(shù)據(jù)中,我的一年從二月開始,所以當(dāng)我說 QTD 時(shí),我的意思如下:Quarter Months1       Feb, Mar, Apr2       May, Jun, Jul3       Aug, Sep, Oct4       Nov, Dec, JanSample Dataframe:Quarter Month   Data    Value1       1       A       100             1       2       B       134             1       3       C       145             2       4       D       156             2       5       E       167             2       6       F       178             3       7       G       123             3       8       H       112             3       9       I       187             4       10      J       132             4       11      K       109             4       12      L       121             對于當(dāng)前情況,假設(shè)我當(dāng)前的月份是 9 月,已過濾的數(shù)據(jù)應(yīng)僅包含 8 月至 9 月的行。我可以使用以下函數(shù)來識別季度,但這是從一月開始的。def current_quarter(dt):    prev_quarter_map = ((4, -1), (1, 0), (2, 0), (3, 0))    quarter, yd = prev_quarter_map[(dt.month - 1) // 3]    return (quarter)    有沒有辦法只過濾那些從當(dāng)前季度開始到當(dāng)月結(jié)束的行?
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

想法是從 開始按季度創(chuàng)建字典February,然后Series.map按月份使用并按boolean indexing日期時(shí)間過濾now從字典轉(zhuǎn)換為您的季度dq

q = [[2,3,4],[5,6,7],[8,9,10],[11,12,1]]

dq = {x: k for k, v in enumerate(q, 1) for x in v}

print (dq)

{2: 1, 3: 1, 4: 1, 5: 2, 6: 2, 7: 2, 8: 3, 9: 3, 10: 3, 11: 4, 12: 4, 1: 4}


now = dq[pd.to_datetime('now').month]

print (now)

3


df1 = df[df['Month'].map(dq) == now]

print (df1)

? ?Quarter? Month Data? Value

7? ? ? ? 3? ? ? 8? ? H? ? 112

8? ? ? ? 3? ? ? 9? ? I? ? 187

9? ? ? ? 4? ? ?10? ? J? ? 132

如果需要按其他日期時(shí)間過濾:


date = datetime.date(2015, 1, 13)

now = dq[date.month]

print (now)

4


df1 = df[df['Month'].map(dq) == now]

print (df1)

? ? Quarter? Month Data? Value

0? ? ? ? ?1? ? ? 1? ? A? ? 100

10? ? ? ? 4? ? ?11? ? K? ? 109

11? ? ? ? 4? ? ?12? ? L? ? 121

編輯:在上面的解決方案中不區(qū)分年份和季度,因此為其添加了新的解決方案tseries.offsets.QuarterBegin

#add year column

print (df)

? ? Quarter? Month Data? Value? Year

0? ? ? ? ?1? ? ? 1? ? A? ? 100? 2020

1? ? ? ? ?1? ? ? 2? ? B? ? 134? 2020

2? ? ? ? ?1? ? ? 3? ? C? ? 145? 2020

3? ? ? ? ?2? ? ? 4? ? D? ? 156? 2020

4? ? ? ? ?2? ? ? 5? ? E? ? 167? 2020

5? ? ? ? ?2? ? ? 6? ? F? ? 178? 2020

6? ? ? ? ?3? ? ? 7? ? G? ? 123? 2020

7? ? ? ? ?3? ? ? 8? ? H? ? 112? 2020

8? ? ? ? ?3? ? ? 9? ? I? ? 187? 2020

9? ? ? ? ?4? ? ?10? ? J? ? 132? 2020

10? ? ? ? 4? ? ?11? ? K? ? 109? 2020

11? ? ? ? 4? ? ?12? ? L? ? 121? 2020


#convert columns to datetimes and convert to datetime for start oq quarter


df['Q'] = (pd.to_datetime(df[['Month','Year']].assign(Day=1)) +?

? ? ? ? ? ?pd.offsets.QuarterBegin(0, startingMonth=2))

print (df)

? ? Quarter? Month Data? Value? Year? ? ? ? ? Q

0? ? ? ? ?1? ? ? 1? ? A? ? 100? 2020 2020-02-01

1? ? ? ? ?1? ? ? 2? ? B? ? 134? 2020 2020-02-01

2? ? ? ? ?1? ? ? 3? ? C? ? 145? 2020 2020-05-01

3? ? ? ? ?2? ? ? 4? ? D? ? 156? 2020 2020-05-01

4? ? ? ? ?2? ? ? 5? ? E? ? 167? 2020 2020-05-01

5? ? ? ? ?2? ? ? 6? ? F? ? 178? 2020 2020-08-01

6? ? ? ? ?3? ? ? 7? ? G? ? 123? 2020 2020-08-01

7? ? ? ? ?3? ? ? 8? ? H? ? 112? 2020 2020-08-01

8? ? ? ? ?3? ? ? 9? ? I? ? 187? 2020 2020-11-01

9? ? ? ? ?4? ? ?10? ? J? ? 132? 2020 2020-11-01

10? ? ? ? 4? ? ?11? ? K? ? 109? 2020 2020-11-01

11? ? ? ? 4? ? ?12? ? L? ? 121? 2020 2021-02-01

還被添加QuarterBegin到日期時(shí)間和最后的擬合器中:


date = datetime.date(2020, 1, 13)

custom_q = (date + pd.offsets.QuarterBegin(0, startingMonth=2))

print (custom_q)

2020-02-01 00:00:00



df1 = df[df['Q'] == custom_q]

print (df1)

? ?Quarter? Month Data? Value? Year? ? ? ? ? Q

0? ? ? ? 1? ? ? 1? ? A? ? 100? 2020 2020-02-01

1? ? ? ? 1? ? ? 2? ? B? ? 134? 2020 2020-02-01


查看完整回答
反對 回復(fù) 2023-10-05
  • 1 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號