Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将ffill应用于1?_Python_Pandas - Fatal编程技术网

Python 如何将ffill应用于1?

Python 如何将ffill应用于1?,python,pandas,Python,Pandas,我有一个如下所示的数据帧 A B C D 0 1 0 0 0 1 0 1 0 0 2 0 1 0 0 3 0 0 1 0 我想把这个转换成这样 A B C D 0 1 0 0 0 1 1 1 0 0 2 1 1 0 0 3 1 1 1 0 到目前为止我试过 df= df.replace('0',np.NaN) df=df.fillna(method='ffill').fillna('0') 我上面的代码

我有一个如下所示的数据帧

   A  B  C  D
0  1  0  0  0
1  0  1  0  0
2  0  1  0  0
3  0  0  1  0
我想把这个转换成这样

   A  B  C  D
0  1  0  0  0
1  1  1  0  0
2  1  1  0  0
3  1  1  1  0
到目前为止我试过

df= df.replace('0',np.NaN)
df=df.fillna(method='ffill').fillna('0')
我上面的代码很好用

但我认为还有其他更好的方法来解决这个问题,

使用转换为数字的数据,然后替换为:

详细信息

print (df.astype(int).cumsum())
   A  B  C  D
0  1  0  0  0
1  1  1  0  0
2  1  2  0  0
3  1  2  1  0
或者在
numpy
中使用相同的原则:


谢谢你的解决方案
print (df.astype(int).cumsum())
   A  B  C  D
0  1  0  0  0
1  1  1  0  0
2  1  2  0  0
3  1  2  1  0
arr = df.values.astype(int)

df = pd.DataFrame(np.where(np.cumsum(arr, axis=0) >= 1, '1', '0'), 
                  index=df.index, 
                  columns= df.columns)
print (df)
   A  B  C  D
0  1  0  0  0
1  1  1  0  0
2  1  1  0  0
3  1  1  1  0