如何统一处理英尺英寸与小数格式的身高数据并转换为米
双格式身高统一转米单位解决方案
核心逻辑通过正则表达式同时适配英尺英寸格式(如5'11")和小数分隔格式(如5.11),自动提取对应英尺、英寸数值后统一换算为米单位。
- 首先导入依赖库:
import pandas as pd import re
- 定义单位转换函数:
def height_to_meter(height_val): # 去除空字符后匹配两种格式的数值 clean_val = str(height_val).strip() match_res = re.match(r"^(\d+)(?:[.\'](\d{1,2}))?\"?$", clean_val) if not match_res: return pd.NA # 异常格式返回空值,可根据业务需求调整默认值 feet = int(match_res.group(1)) inches = int(match_res.group(2)) if match_res.group(2) else 0 # 英尺、英寸转米的换算系数 return round(feet * 0.3048 + inches * 0.0254, 4)
- 应用到DataFrame的身高列生成标准单位字段:
df1['Height_m'] = df1['Height'].apply(height_to_meter)
转换效果示例
| 原始输入 | 转换后结果(米) |
|---|---|
| 5'11" | 1.8034 |
| 5.11 | 1.8034 |
| 6' | 1.8288 |
| 6 | 1.8288 |
内容的提问来源于stack exchange,提问作者Chetan Venkaraddiyavar
相关产品推荐
相关产品推荐

