如何根据某些条件定位和替换数据框中的值

时间:2021-06-23 10:52:06

标签: python pandas dataframe

我想在 Col2 中的值发生变化时定位所有位置(例如从 A 到 C),然后从 Col1 修改值(对应于发生变化时的行,所以当 A -> C那么它将与 C) 在同一行中的值通过将当前值和先前值相除除以二(在本例中为 1 + (1.5-1)/2 = 1.25。

输出表是替换整个表中所有出现的结果

我如何才能做到这一点?

<头>
Col1 Col2
1 A
1.5 C
2.0 A
2.5 A
3.0 D
3.5 D

输出:

<头>
Col1 Col2
1 A
1.25 C
1.75 A
2.5 A
2.75 D
3.5 D

1 个答案:

答案 0 :(得分:1)

使用 np.where 和系列保持公式的值

solution = df.Col1.shift() + ((df.Col1 - df.Col1.shift()) / 2)
df['Col1'] = np.where(~df.Col2.eq(df.Col2.shift()), solution.fillna(df.Col1), df.Col1)
相关问题