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

如何将含kg/g的Pandas Series统一转换为克数值?

Pandas Series单位统一转换为克的实现方法

给定包含kg/g单位的字符串Series,需要将所有值统一转换为以克为单位的整数,其中kg对应的数值乘以1000,g对应的数值保持原整数状态,以下是两种可行的实现方式:

方法一:正则提取+批量计算

通过正则表达式拆分数值和单位,再批量计算转换结果,适合处理大规模数据:

import pandas as pd

s = pd.Series({0: '1kg', 1: '500g', 2: '200g', 3: '3.2kg'})

# 提取数值(支持整数/小数)和单位
extracted = s.str.extract(r'^(\d+\.?\d*)(kg|g)$')
extracted.columns = ['数值', '单位']

# 将数值转为浮点型,再根据单位计算克数
extracted['数值'] = extracted['数值'].astype(float)
result = extracted.apply(lambda row: row['数值'] * 1000 if row['单位'] == 'kg' else row['数值'], axis=1).astype(int)

print(result)

输出结果:

0    1000
1     500
2     200
3    3200
dtype: int64

方法二:元素级自定义函数转换

通过apply遍历每个元素,用自定义函数处理单位转换,逻辑直观易懂:

import pandas as pd

s = pd.Series({0: '1kg', 1: '500g', 2: '200g'})

def to_grams(text):
    if 'kg' in text:
        return int(float(text.replace('kg', '')) * 1000)
    elif 'g' in text:
        return int(float(text.replace('g', '')))

result = s.apply(to_grams)
print(result)

输出结果:

0    1000
1     500
2     200
dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:42:43