pandas数据帧中数据的条件重置

VIK*_*WAL 0 python-2.7 pandas

我正在寻找一种有效的方法(如果可能的话,没有循环/迭代)使用输入a和b获取我的输出.a是具有随机数的数组,b是定义重置点的数组.

a = pd.DataFrame([2, 5, 4, 1, 6, 6, 4, 7])
b = pd.DataFrame([1, 0, 0, 1, 0, 0, 1, 0])
Run Code Online (Sandbox Code Playgroud)

输出:

[2, 2, 2, 1, 1, 1, 4, 4]
Run Code Online (Sandbox Code Playgroud)

jor*_*ris 7

您可以简单地使用b布尔数组作为索引,然后填充NaN值,在本例中使用正向填充(ffill方法):

a[b.astype(bool)].fillna(method='ffill')
Run Code Online (Sandbox Code Playgroud)

有关fillna文档,请参阅:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.fillna.html