Pandas列运算问题:无法计算带$符号的price与quantity乘积
解决方案
步骤1:清理价格列并转换为数值类型
首先移除price列中的$符号,再转换为数值类型(推荐用float适配带小数的价格):
import pandas as pd # 假设你的数据框名为df df['price_num'] = df['price'].str.replace('$', '', regex=False).astype(float)
用regex=False是为了避免把$当作正则表达式的结束符,确保精准移除符号。
步骤2:计算销售额
用清理后的数值型价格和quantity相乘得到销售额:
df['sales'] = df['quantity'] * df['price_num']
步骤3:给销售额添加$符号并格式化
为符合货币展示规范,给销售额加上$符号,同时保留两位小数:
df['sales'] = df['sales'].apply(lambda x: f'${x:.2f}')
如果价格都是整数,也可以转为整数后格式化:
df['sales'] = df['sales'].apply(lambda x: f'${int(x)}')
问题原因说明
你之前直接用带$的字符串类型price和int类型quantity相乘,Python中字符串乘整数的行为是重复字符串,所以才会出现结果重复price值的情况。必须先将价格转换为数值类型,才能进行数学运算。
内容的提问来源于stack exchange,提问作者Abder
相关产品推荐
相关产品推荐

