如何拆分DataFrame中revenue字段特定数值内的k与小数点字符
解决方案
以下基于Pandas实现,两步即可完成格式统一或字符拆分:
1. 统一转为纯数值格式(推荐解决格式不一致问题)
直接将两类格式转换为统一的整数数值,带k的数值自动换算为对应千位级数值:
import pandas as pd # 示例数据构造,可替换为你自己的DataFrame df = pd.DataFrame({ 'revenue': ['300', '1.5k', '500', '2.2k', '750', '3k'] }) # 核心转换逻辑 df['revenue'] = df['revenue'].apply( lambda x: float(x.strip('kK')) * 1000 if 'k' in x.lower() else float(x) ).astype(int)
处理后的revenue字段值统一为:300、1500、500、2200、750、3000。
2. 单独拆分k和小数点特征
如果你需要单独提取这两个字符的存在标记、或拆分数字与单位部分,用以下代码:
# 提取是否包含k的标记(不区分大小写) df['has_k'] = df['revenue'].str.contains('k', case=False) # 提取是否包含小数点的标记 df['has_dot'] = df['revenue'].str.contains('\.') # 拆分数字部分和单位部分 df[['num_part', 'unit']] = df['revenue'].str.extract('([\d\.]+)(.*)', expand=True)
内容的提问来源于stack exchange,提问作者Eddard Stark
相关产品推荐
相关产品推荐

