如何在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
相关产品推荐
相关产品推荐

