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

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

用 Python 中同一列中的下一個(gè)值填充 NaN 值

用 Python 中同一列中的下一個(gè)值填充 NaN 值

精慕HU 2024-01-27 14:39:16
我想用NaN列中的下一個(gè)值填充值:numberdf        Id  Date        is_start        number151256  30  2010-09-21  False           NaN237558  30  2010-09-22  False           0.036922   120 2010-10-13  False           0.0246284  80  2010-09-21  False           NaN47655   80  2010-09-21  False           658.0可重現(xiàn)的例子:import pandas as pdimport numpy as npimport datetimesample_df = pd.DataFrame({'Id': {151256: 30, 237558: 30, 36922: 120, 246284: 80, 47655: 80}, 'Date': {151256: datetime.date(2010, 9, 21),  237558: datetime.date(2010, 9, 22),  36922: datetime.date(2010, 10, 13),  246284: datetime.date(2010, 9, 21),  47655: datetime.date(2010, 9, 21)}, 'is_start': {151256: False,  237558: False,  36922: False,  246284: False,  47655: False}, 'number': {151256: np.nan,  237558: 0.0,  36922: 0.0,  246284: np.nan,  47655: 658.0}})sample_df預(yù)期輸出:        Id  Date        is_start        number151256  30  2010-09-21  False           0.0   (replaced)237558  30  2010-09-22  False           0.036922   120 2010-10-13  False           0.0246284  80  2010-09-21  False           658.0 (replaced)47655   80  2010-09-21  False           658.0我試過(guò):sample_df['number'] = sample_df.fillna(sample_df.number.shift())但得到輸出:        Id  Date    is_start    number151256  30  2010-09-21  False   30237558  30  2010-09-22  False   3036922   120 2010-10-13  False   120246284  80  2010-09-21  False   8047655   80  2010-09-21  False   80其中number采用Id列中的值。為什么會(huì)發(fā)生這種情況以及正確的方法是什么?
查看完整描述

2 回答

?
一只名叫tom的貓

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

這里檢查bfill注意限制是只填充下一個(gè)NaN值


df.number = df.number.bfill(limit=1)

Out[138]: 

151256      0.0

237558      0.0

36922       0.0

246284    658.0

47655     658.0

Name: number, dtype: float64


查看完整回答
反對(duì) 回復(fù) 2024-01-27
?
至尊寶的傳說(shuō)

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

BEN_YO 的解決方案就是答案,但這里有一個(gè)使用fillnaand的替代方案shift(-1):


sample_df['number'] = sample_df['number'].fillna(sample_df['number'].shift(-1))

sample_df

Out[1]: 

         Id        Date  is_start  number

151256   30  2010-09-21     False     0.0

237558   30  2010-09-22     False     0.0

36922   120  2010-10-13     False     0.0

246284   80  2010-09-21     False   658.0

47655    80  2010-09-21     False   658.0


查看完整回答
反對(duì) 回復(fù) 2024-01-27
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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