亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

更改多索引數據框中列的值

更改多索引數據框中列的值

幕布斯6054654 2022-10-11 21:18:25
我有一個這樣的數據框:                        holiday  YEAR MONTH DAY TIME2012 10    2   00:00:00       0               06:00:00       0                   12:00:00       0               18:00:00       02012 10    3   00:00:00       1               06:00:00       0               12:00:00       0               18:00:00       02012 10    4   00:00:00       0               06:00:00       0               12:00:00       0               18:00:00       0其中 0 表示這一天不是假期,而 1 表示這一天是假期。但是,1 僅在 00:00:00 小時出現,我想將當天的所有 0 替換為 1。                        holiday  YEAR MONTH DAY TIME2012 10    2   00:00:00       0               06:00:00       0                   12:00:00       0               18:00:00       02012 10    3   00:00:00       1               06:00:00       1               12:00:00       1               18:00:00       12012 10    4   00:00:00       0               06:00:00       0               12:00:00       0               18:00:00       0關于如何做到這一點的任何想法?
查看完整描述

3 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

讓我們做

df['holiday']=df.groupby(level=[0,1,2]).cumsum().values


查看完整回答
反對 回復 2022-10-11
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

Groupby 是個好主意:


# transform('any') or transform('first') also work

df['holiday'] = df.groupby(['YEAR','MONTH','DAY']).holiday.transform('max')


查看完整回答
反對 回復 2022-10-11
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

reindex

df.max(level=[0, 1, 2]).reindex(df.index)


                         holiday

YEAR MONTH DAY TIME             

2012 10    2   00:00:00        0

               06:00:00        0

               12:00:00        0

               18:00:00        0

           3   00:00:00        1

               06:00:00        1

               12:00:00        1

               18:00:00        1

           4   00:00:00        0

               06:00:00        0

               12:00:00        0

               18:00:00        0

設置

idx = pd.MultiIndex.from_product([

    [2012], [10], [2, 3, 4],

    pd.timedelta_range(0, periods=4, freq='6H')

], names=['YEAR', 'MONTH', 'DAY', 'TIME'])


df = pd.DataFrame({'holiday': [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]}, idx)


查看完整回答
反對 回復 2022-10-11
  • 3 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號