感觉我几乎到处都看过了,我知道这可能是非常简单的事情。我正在使用 pandas 数据框,并希望根据同一列中的数据填充/替换其中一列中的数据。我通常更喜欢使用 Excel,而且 Excel 非常简单。如果我们有:
df = pd.DataFrame([0, -1, -1, -1, 0 , 0, 0, 1, 0])
df.columns = ['A']
df['B'] = df['A']
在Excel中,我想做的是“=IF(AND(A2=0, B1=-1), -1, A2),这样我就可以向下拖动“B”列,这将适用。本质上,根据 B 列的先前数据点和 A 列的当前值,我需要更新 B 列的当前值。
我试过了:
df['B'] = np.where((df['A'] == 0), (df['B'].shift(1) == -1),
df['B'].replace(to_value = 0, method = 'ffill'), df['A'])
以及许多其他版本,以及 iterrows 的变体和其他令人难以置信的极端解决方法,但没有任何效果。
非常感谢任何建议。
EDIT:
结果将是:
df['B'] = [0, -1, -1, -1, -1 , -1, -1, 1, 0]