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

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

pandas DataFrame 的逐行處理

pandas DataFrame 的逐行處理

慕標琳琳 2023-06-27 18:14:30
您能幫忙解決一個具體任務(wù)嗎?我需要逐行處理 pandas DataFrame 列。要點是“無”值必須轉(zhuǎn)換為“0”或“1”,以便繼續(xù)處理列中已有的“0”或“1”值。我已經(jīng)通過使用“for”循環(huán)完成了它,并且它工作正常:for i in np.arange(1, len(pd['signal'])):    if df.isnull(df['signal'].iloc[i]) and df['signal'].iloc[i-1] == 0:        df['signal'].iloc[i] = 0    if df.isnull(df['signal'].iloc[i]) and df['signal'].iloc[i-1] == 1:        df['signal'].iloc[i] = 1但是,事實上這并不是迭代 DataFrame 的好方法。我嘗試使用“l(fā)oc”方法,但它帶來了不正確的結(jié)果,因為這樣每個步驟都不會考慮之前執(zhí)行的結(jié)果,因此一些“None”值保持不變。df.loc[(df.isnull(df['signal'])) & (df['signal'].shift(1) == 0), 'signal'] = 0 df.loc[(df.isnull(df['signal'])) & (df['signal'].shift(1) == 1), 'signal'] = 1 有誰知道如何在沒有“for”循環(huán)的情況下實現(xiàn)此任務(wù)?
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

有專門用于此目的的矢量化函數(shù),速度會快得多:


df = pd.DataFrame(dict(a=[1,1,np.nan, np.nan], b=[0,1,0,np.nan]))

df.ffill()



# df

     a    b

0  1.0  0.0

1  1.0  1.0

2  NaN  0.0

3  NaN  NaN


# output

     a    b

0  1.0  0.0

1  1.0  1.0

2  1.0  0.0

3  1.0  0.0


查看完整回答
反對 回復 2023-06-27
?
白豬掌柜的

TA貢獻1893條經(jīng)驗 獲得超10個贊

您可以在以下位置使用 numpy:


import numpy as np


df['signal'] = np.where(pd.isnull(df['signal']), df['signal'].shift(1), df['signal'])


查看完整回答
反對 回復 2023-06-27
  • 2 回答
  • 0 關(guān)注
  • 506 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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