Pandas数据清洗:移除面积列单位并转换sot单位数值
处理房屋面积数据的两种实用方法
针对你需要清洗的Sahə列,这里提供两种直接落地的实现方式:
方法一:拆分数字与单位后批量计算
这种方法适合数据格式规整的场景(所有行都是「数字+空格+单位」的结构),运行效率更高:
import pandas as pd # 从字符串中提取数字和单位两部分 df[['数值', '单位']] = df['Sahə'].str.extract(r'(\d+(?:\.\d+)?) (m²|sot)') # 将数值转为浮点型,根据单位计算最终统一为平方米的面积 df['清洗后面积(㎡)'] = df['数值'].astype(float) * df['单位'].map({'m²': 1, 'sot': 100}) # 可选:删除中间生成的临时列 df = df.drop(['数值', '单位'], axis=1)
方法二:逐行处理(适配特殊格式)
如果数据中存在少量格式不统一的行,用apply逐行处理会更灵活:
def 转换面积(面积字符串): # 拆分数字和单位 数字部分, 单位部分 = 面积字符串.split() 数字 = float(数字部分) # 根据单位返回对应数值 return 数字 * 100 if 单位部分 == 'sot' else 数字 df['清洗后面积(㎡)'] = df['Sahə'].apply(转换面积)
补充说明
- 两种方法都能自动将
sot单位的数值乘以100,同时保留m²的原数值,最终得到统一的平方米数值。 - 如果数据里包含小数(比如
12.5 sot),代码也能正常处理,因为用了float类型转换。
内容的提问来源于stack exchange,提问作者Aitan
相关产品推荐
相关产品推荐

