You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中依据另一列字符串将指定列值转为负数?

解决方案及相关问题翻译

相关问题翻译

原链接的英文问题标题翻译为:根据另一列的值为条件将数值转为负数

针对你的场景的解决方法

你的DataFrame中a列是字符串类型(因初始化时用了混合数字与字符串的数组),得先把它转成数值类型,再做条件赋值:

import pandas as pd
import numpy as np

# 原始数据
df = pd.DataFrame(np.array([[1, "postive"], [1, "negative"]]), columns=['a', 'b'])

# 转换a列为数值类型
df['a'] = pd.to_numeric(df['a'])

# 对b列为"negative"的行,将a列转为负数
df.loc[df['b'] == 'negative', 'a'] *= -1

print(df)

运行后输出结果:

a         b
0  1   postive
1 -1  negative

说明

你之前没法直接套用其他方案,大概率是没注意a列的类型问题——别的场景里目标列可能已经是数值类型,但你的a列初始是字符串,必须先转类型才能做算术运算。

内容的提问来源于stack exchange,提问作者MoonBoi9001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:40:30