我正在寻找一种有效的方法(如果可能,无需循环/迭代)使用输入 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]
我正在寻找一种有效的方法(如果可能,无需循环/迭代)使用输入 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]
您可以简单地索引b
为布尔数组,然后填充NaN
值,在这种情况下使用前向填充(ffill
方法):
a[b.astype(bool)].fillna(method='ffill')
有关fillna
文档,请参阅: http: //pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.fillna.html