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




