gpt4 book ai didi

python - 用另一列中的相同行值替换 pandas 数据框列中的值

转载 作者:行者123 更新时间:2023-12-02 05:12:38 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

            val_1   val_2   Flag
Date
2018-08-27 221.0 121.0 0
2018-08-28 222.0 122.0 1
2018-08-29 223.0 123.0 0
2018-08-30 224.0 124.0 2
2018-08-31 225.0 125.0 0

我想根据标志条件将标志列值更改为与其他列相同的值。即,如果 Flag 为 1,则将 1 替换为同一行中的 val_1;如果 Flag 为 2,则将其替换为 val_2。我正在寻找的输出如下所示:

            val_1   val_2   Flag
Date
2018-08-27 221.0 121.0 0
2018-08-28 222.0 122.0 222.0
2018-08-29 223.0 123.0 0
2018-08-30 224.0 124.0 124.0
2018-08-31 225.0 125.0 0

我知道我可以像这样使用 .loc df.loc[df['Flag'] == 1, ['Flag']] =。我不知道代码右侧是什么。

最佳答案

另一种方法是将 np.where 用于 numpy.where(condtion,yes,no)

在本例中,我使用嵌套的 np.where 以便

np.where(If Flag=2,take val_2,(take x)) 其中 takex 是另一个 np.where

df['Flag']=np.where(df['Flag']==1,df['val_1'],(np.where(df['Flag']==2,df['val_2'],df['Flag'])))
df

输出

enter image description here

关于python - 用另一列中的相同行值替换 pandas 数据框列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61238384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com