如何将Pandas中buy交易数据集的amount列负值转为正值?
解决办法:将买入交易的amount负值转为正值
这事儿处理起来挺简单的,给你几个实用的方法,都是pandas里常用的操作:
最直接的pandas内置方法:利用Series的
abs()函数直接对整列取绝对值,这是效率最高的方式——因为是向量化操作,比循环快太多:buy['amount'] = buy['amount'].abs()执行完这行代码,buy数据集里的amount列就全是正数了,完美适配你的可视化需求。
灵活的自定义转换方式:如果之后你需要更复杂的数值转换逻辑,可以用
apply()配合lambda函数(当然取绝对值用它有点大材小用,但可以了解下这种思路):buy['amount'] = buy['amount'].apply(lambda x: abs(x))借助numpy实现:numpy的
abs()函数同样支持向量化操作,速度也很快,适合已经导入numpy的场景:import numpy as np buy['amount'] = np.abs(buy['amount'])
另外提醒一句:如果你不想修改原数据集的amount列,可以新增一个列来存储正值,比如:
buy['positive_amount'] = buy['amount'].abs()
之后可视化的时候用这个新列就行,原数据的负值还能保留下来。
这样处理完后,不管是画柱状图对比买卖金额,还是折线图展示交易趋势,买入的金额就都是正常的正值啦~
内容的提问来源于stack exchange,提问作者김수운태
相关产品推荐
相关产品推荐

