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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

合并特定日期范圍內(nèi)的 Pandas DataFrame

合并特定日期范圍內(nèi)的 Pandas DataFrame

江戶川亂折騰 2023-08-03 16:25:21
我有 2 個數(shù)據(jù)框。一個用于Invoice Data,另一個用于Promotion Dates。Invoice Data數(shù)據(jù)框+------------+-------------+---------------+| LocationNo | InvoiceDate | InvoiceAmount |+------------+-------------+---------------+|      A     |  01-Jul-20  |       79      |+------------+-------------+---------------+|      B     |  01-Jul-20  |       72      |+------------+-------------+---------------+|      C     |  01-Jul-20  |       24      |+------------+-------------+---------------+|      A     |  02-Jul-20  |       68      |+------------+-------------+---------------+|      B     |  02-Jul-20  |       6       |+------------+-------------+---------------+|      C     |  02-Jul-20  |       27      |+------------+-------------+---------------+|      A     |  03-Jul-20  |       25      |+------------+-------------+---------------+|      B     |  03-Jul-20  |       62      |+------------+-------------+---------------+|      C     |  03-Jul-20  |       58      |+------------+-------------+---------------+|      D     |  03-Jul-20  |       36      |+------------+-------------+---------------+|      E     |  03-Jul-20  |       65      |+------------+-------------+---------------+|      F     |  03-Jul-20  |       81      |+------------+-------------+---------------+df_1 = pd.DataFrame({    'LocationNo':['A','B','C','A','B','C','A','B','C','D','E','F'],    'InvoiceDate':['01-Jul-20','01-Jul-20','01-Jul-20','02-Jul-20','02-Jul-20','02-Jul-20',                  '03-Jul-20','03-Jul-20','03-Jul-20','03-Jul-20','03-Jul-20','03-Jul-20'],    'InvoiceAmount':[79,72,24,68,6,27,25,62,58,36,65,81]})我的任務(wù)是根據(jù)兩個條件合并兩個數(shù)據(jù)幀,并在 滿足這些條件時Yes向新列添加值。Promotion條件如下LocationNo應(yīng)該匹配應(yīng)該InvoiceDate位于各自的LocationNo和PromotionStart之間PromotionEnd。基本上,僅在和日期InvoiceDate之間進(jìn)行合并。PromotionStartPromotionEnd
查看完整描述

1 回答

?
縹緲止盈

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

讓我們嘗試merge過濾一下:


out = df_1.merge(df_2, on='LocationNo', how='left')


df_1['Promotion'] = np.where(out['InvoiceDate'].between(out['PromotionStart'], out['PromotionEnd']),

                             'Yes', '')

輸出:


   LocationNo InvoiceDate  InvoiceAmount Promotion

0           A   01-Jul-20             79       Yes

1           B   01-Jul-20             72          

2           C   01-Jul-20             24          

3           A   02-Jul-20             68       Yes

4           B   02-Jul-20              6       Yes

5           C   02-Jul-20             27          

6           A   03-Jul-20             25          

7           B   03-Jul-20             62       Yes

8           C   03-Jul-20             58       Yes

9           D   03-Jul-20             36       Yes

10          E   03-Jul-20             65          

11          F   03-Jul-20             81          


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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