python - 根据其他列修改数据框列中的值

标签 python pandas dataframe

我有一个包含 A 列和 B 列的数据框 (df):

   A   B
0  'a' 50
1  'b' 25
2  'a' 30
3  'c' 200

如果 A 列的值为“a”,我想将 B 列的值乘以 100,所以我的输出应该是:

   A   B
0  'a' 5000
1  'b' 25
2  'a' 3000
3  'c' 200

任何人都可以建议一个更简洁的方法来做到这一点。谢谢。

最佳答案

我觉得测试子串没必要,只用DataFrame.loc比较值 a:

df.loc[df['A'] == "'a'", 'B'] *= 100
#same like
#df.loc[df['A'] == "'a'", 'B'] = df.loc[df['A'] == "'a'", 'B'] * 100
print (df)
   A     B
0  a  5000
1  b    25
2  a  3000
3  c   200

关于python - 根据其他列修改数据框列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59573916/

相关文章:

python - 获取固定大小的子列表

python - Pandas 根据其他列更改列值

python - 如何用包含字符串值的列表填充 Pandas 数据框列

python - 按日期拆分 DataFrame 并通过附加新记录和覆盖现有记录来重新组合

python - 为什么 super(Thread, self).__init__() 不能用于 threading.Thread 子类?

python - 如何以编程方式清除 Maya 脚本编辑器?

Python:如何将时间戳转换为 Pandas 列中的日期?

python - 如何在同一列中用组的最小值填充 NaN 值

apache-spark - Spark : Is there differences between agg function and a window function on a spark dataframe?

python - 如何使用 save_weights 保存的 tensorflow 模型进行加载和预测?