我有如下數據框import pandas as pdimport numpy as npk={'ID':[1,2,3,4,5,6],'m1':[20,'',30,40,50,60], 'm2':['',40,40,90,'',''], 'm3':['','','','','',''], 'm4':['','','','','',''], 'm5':['','','','',1,''], 'm6':[10,'','',90,'','']}df=pd.DataFrame(data=k)我們檢查了同一行的其他行中是否有任何退出值,然后我們需要用零填充它,或者其他確實包含我們必須填充的任何值,NAN我的結果顯示如下ID m1 m2 m3 m4 m5 m61 20 0.0 0.0 0.0 0.0 10.0 # first row and last row has value some vale so we have fill it Zero others rows 2 0 40.0 NaN NaN NaN NaN # there are no value after the second row we have will it with NAN3 30 40.0 NaN NaN NaN NaN # there are no value after the second row we have will it with NAN4 40 90.0 0.0 0.0 0.0 90.0 # first row,second row and last row has some value so we have fill it Zero to other rows 5 50 0.0 0.0 0.0 1.0 NaN # first row,and fifth row has some value so we have fill it Zero to other rows and last row with Nan 6 60 NaN NaN NaN NaN NaN # there are no value after the first row we have will it with NAN
1 回答

縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
讓我們bfill嘗試mask
s=df.iloc[:,1:]
df.iloc[:,1:]=s.mask(s.mask(s=='').bfill(1).notna()&(s==''),0)
df
ID m1 m2 m3 m4 m5 m6
0 1 20 0 0 0 0 10
1 2 0 40
2 3 30 40
3 4 40 90 0 0 0 90
4 5 50 0 0 0 1
5 6 60
添加回答
舉報
0/150
提交
取消