gpt4 book ai didi

python - 如何根据另一列的值更改 Pandas DataFrame 中的值

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

我有以下 DataFrame,其中包含一些数字,其中 Col1、Col2 和 Col3 中的值之和等于 Main 列中的值。

如果 Cat 列中的值等于 Main 列中的相应值,我如何替换它们?

例如,下面的DataFrame:

      Main        Col1        Col2        Col3
0 100 50 50 0
1 200 0 200 0
2 30 20 5 5
3 500 0 0 500

将更改为:

      Main        Col1        Col2        Col3
0 100 50 50 0
1 200 0 EQUAL 0
2 30 20 5 5
3 500 0 0 EQUAL

最佳答案

您可以使用 filter 仅应用于“Col”列(您也可以使用列表切片,参见替代方法),然后使用 mask 更改匹配值,最后 update 就地更新 DataFrame:

df.update(df.filter(like='Col').mask(df.eq(df['Main'], axis=0), 'EQUAL'))

备选方案:

cols = ['Col1', 'Col2', 'Col3']
df.update(df[cols].mask(df.eq(df['Main'], axis=0), 'EQUAL'))

输出:

   Main  Col1   Col2   Col3
0 100 50 50 0
1 200 0 EQUAL 0
2 30 20 5 5
3 500 0 0 EQUAL

关于python - 如何根据另一列的值更改 Pandas DataFrame 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72736696/

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