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

如何从Pandas Series提取带M/k单位的数字并统一转换单位?

处理带单位的大小列数值转换

需求说明

数据集的size列包含带单位的大小值(如19M、853k),需完成以下操作:

  • 提取字符串中的数字部分
  • 根据单位(M/k)转换为统一数值(可选择转兆字节、字节等)
  • 将结果转换为数值类型

实现方案(Python Pandas)

以下提供两种常用的统一单位转换方式,基于Pandas处理数据集:

方式1:统一转换为兆字节(MB)

import pandas as pd

# 读取数据集(替换为你的数据集路径/方式)
df = pd.read_csv("your_dataset.csv")

def convert_to_mb(size_str):
    # 提取数字部分(支持小数)
    num = float(''.join([c for c in size_str if c.isdigit() or c == '.']))
    # 提取单位并统一为大写
    unit = size_str[-1].upper()
    # 根据单位计算
    if unit == 'K':
        return num / 1024
    elif unit == 'M':
        return num
    else:
        return None  # 未知单位返回空,可按需修改逻辑

# 生成转换后的列,或直接替换原size列
df['size_mb'] = df['size'].apply(convert_to_mb)

方式2:统一转换为字节(Bytes)

def convert_to_bytes(size_str):
    num = float(''.join([c for c in size_str if c.isdigit() or c == '.']))
    unit = size_str[-1].upper()
    if unit == 'K':
        return num * 1024
    elif unit == 'M':
        return num * 1024 * 1024
    else:
        return None

df['size_bytes'] = df['size'].apply(convert_to_bytes)

补充说明

  • 代码支持带小数的数值(如2.3M、512.5k)
  • 若存在未知单位,当前逻辑返回None,可根据实际需求调整(如抛出提示、设为0等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:50:28