gpt4 book ai didi

python - Pandas :根据条件按行替换值

转载 作者:行者123 更新时间:2023-12-01 21:45:25 25 4
gpt4 key购买 nike

我有一个 Pandas 数据框如下:

df2
amount 1 2 3 4
0 5 1 1 1 1
1 7 0 1 1 1
2 9 0 0 0 1
3 8 0 0 1 0
4 2 0 0 0 1

我想要做的是将每一行的 1 替换为该行中金额字段的值,并保留零。输出应该是这样的

   amount  1  2  3  4
0 5 5 5 5 5
1 7 0 7 7 7
2 9 0 0 0 9
3 8 0 0 8 0
4 2 0 0 0 2

我试过像这样逐行应用 lambda 函数,但我遇到了错误

df2.apply(lambda x: x.loc[i].replace(0, x['amount']) for i in len(x), axis=1)

任何帮助将不胜感激。谢谢

最佳答案

让我们使用掩码:

df2.mask(df2 == 1, df2['amount'], axis=0)

输出:

   amount  1  2  3  4
0 5 5 5 5 5
1 7 0 7 7 7
2 9 0 0 0 9
3 8 0 0 8 0
4 2 0 0 0 2

关于python - Pandas :根据条件按行替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60802402/

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