You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Power BI中如何将含K(千)、M(百万)的文本列转换为整数

嘿,这个需求太常见了!我给你准备了两种实用方案,分别适配Excel手动处理和Python批量自动化的场景,你可以根据自己的情况选:

方案1:用Excel公式快速转换

如果你的数据在Excel里,操作起来超简单:

  • 假设报名人数列是A列,在旁边空白列(比如B1)输入这个公式:
    =IF(RIGHT(A1,1)="K",LEFT(A1,LEN(A1)-1)*1000,IF(RIGHT(A1,1)="M",LEFT(A1,LEN(A1)-1)*1000000,A1))
  • 公式逻辑:先判断单元格最后一位是K还是M,去掉后缀后乘以对应倍数(K=1000,M=1000000);如果没有后缀,直接返回原数值。
  • 下拉填充公式后,选中转换后的列,右键选择「设置单元格格式」,切换到「整数」格式就大功告成啦。
方案2:用Python Pandas批量处理(适合大数据量)

如果数据量很大,或者需要自动化处理,用Pandas效率更高:

import pandas as pd

def convert_enrollment(value):
    # 先把值转成字符串并清理首尾空格
    value_str = str(value).strip()
    # 处理带K的情况,支持小数(比如1.2K转1200)
    if value_str.endswith('K'):
        return int(float(value_str[:-1]) * 1000)
    # 处理带M的情况
    elif value_str.endswith('M'):
        return int(float(value_str[:-1]) * 1000000)
    # 处理无后缀的数值,兼容整数和小数
    else:
        try:
            return int(float(value_str))
        # 遇到非数值内容返回None,避免报错
        except ValueError:
            return None

# 读取你的数据文件(这里以Excel为例,CSV的话用read_csv)
df = pd.read_excel('your_course_data.xlsx')
# 对目标列应用转换函数,生成新的整数列
df['enrollment_int'] = df['enrollment'].apply(convert_enrollment)
# 保存转换后的结果
df.to_excel('converted_enrollment_data.xlsx', index=False)

小提醒

  • 如果数据里有多余的符号(比如逗号、空格),可以先清理:Excel用CLEAN(A1),Python里在函数里加value_str = value_str.replace(',', '').strip()
  • 要是遇到异常值(比如非K/M的文本),两个方案都做了容错处理,不会直接报错。

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

火山引擎 最新活动