Dae*_*017 2 python replace numpy series pandas
我有一张桌子:
目的 | 第 1 列 | 第2栏 | 第3栏 | 第4栏 |
---|---|---|---|---|
参考 | 10 | 14 | 7 | 29 |
对象1 | 0 | 9 | 1 | 30 |
对象2 | 1 | 16 | 0 | 17 号 |
对象3 | 9 | 21 | 3 | 0 |
对象4 | 11 | 0 | 4 | 22 |
我想按条件对其进行转换:如果任何单元格(第一行的单元格除外)=0,则必须将其替换为该列第一行中递增的 (X+1) 值。
结果表是:
目的 | 第 1 列 | 第2栏 | 第3栏 | 第4栏 |
---|---|---|---|---|
参考 | 10 | 14 | 7 | 29 |
对象1 | 11 | 9 | 1 | 30 |
对象2 | 1 | 16 | 8 | 17 号 |
对象3 | 9 | 21 | 3 | 30 |
对象4 | 11 | 15 | 4 | 22 |
我尝试过这个变体:
df = np.where(df[df == 0] == 0, df.iloc[0] + 1, df)
Run Code Online (Sandbox Code Playgroud)
但结果是ndarray
,不是DataFrame,而且性能不够好。
有没有办法只使用 pandas 的 utils 来做到这一点?
out = df.mask(df == 0, df.iloc[0] + 1, axis=1)
print (out)
Col1 Col2 Col3 Col4
Object
reference 10 14 7 29
Obj1 11 9 1 30
Obj2 1 16 8 17
Obj3 9 21 3 30
Obj4 11 15 4 22
Run Code Online (Sandbox Code Playgroud)