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

使用Python将混合盎司、磅单位的重量列批量转换为磅单位

解决方法

你之前的拆分逻辑只适配了带lb单位的行,对仅含盎司的行无法正确拆分,改用正则提取数值的方式可以覆盖所有格式:
1 盎司 = 1/16 磅,计算逻辑非常直接。

完整代码示例

import pandas as pd

# 构造测试数据,你可以替换成自己的df
data = {'weight': ['15.00 oz', '19.00 oz', '2 lb 15.00 oz ', '1 lb 19.00 oz']}
df = pd.DataFrame(data)

# 用正则分别提取磅、盎司的数值,未匹配到的填充为0
df[['lb_val', 'oz_val']] = df['weight'].str.extract(
    r'(?:(\d+)\s*lb)?\s*(?:([\d.]+)\s*oz)?'
).fillna(0).astype(float)

# 计算总磅数
df['weight_lb'] = df['lb_val'] + df['oz_val'] / 16

# 如果需要输出为带lb后缀的字符串格式,和你的预期示例完全对齐
df['weight'] = df['weight_lb'].apply(lambda x: f"{x:.4f} lb")

# 输出结果时可以删掉中间辅助列
df = df.drop(columns=['lb_val', 'oz_val', 'weight_lb'])

输出结果

weight
0  0.9375 lb
1  1.1875 lb
2  2.9375 lb
3  2.1875 lb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:27:00