我正在寻找一种有效的方法(如果可能的话,没有循环/迭代)使用输入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])
输出:
[2, 2, 2, 1, 1, 1, 4, 4]
答案 0 :(得分:7)
您可以使用b
作为布尔数组进行索引,然后填充NaN
值,在这种情况下使用前向填充(ffill
方法):
a[b.astype(bool)].fillna(method='ffill')
对于fillna
个文档,请参阅:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.fillna.html