簡體   English   中英

如何根據某些條件定位和替換數據框中的值

[英]How to locate and replace values in dataframe based on some criteria

我想在 Col2 中的值發生變化時定位所有位置(例如從 A 到 C 的變化),然后從 Col1 修改值(對應於發生變化時的行,所以當 A -> C 那么它會通過將減法當前值和先前值除以二(在此示例中將是 1 + (1.5-1)/2 = 1.25),得到與 C 相同行的值。

輸出表是替換整個表中所有出現的結果

我怎么能做到這一點?

第 1 列 Col2
1 一種
1.5 C
2.0 一種
2.5 一種
3.0 D
3.5 D

輸出:

第 1 列 Col2
1 一種
1.25 C
1.75 一種
2.5 一種
2.75 D
3.5 D

使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM