You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将含房间面积的字符串拆分为对应DataFrame列与数值

错误原因

  • 原代码使用str.split(',',1, expand=True)仅按逗号拆分1次,仅会生成2列数据,无法匹配你要赋值的5个列,直接触发列长度不匹配的报错
  • 不同行的房间数量不一致,直接拆分后列数不固定,不能直接赋值给固定列名的DataFrame

解决方案

通过自定义函数逐行处理面积字符串,将房间名与对应面积两两配对后转换为字典,再统一转为DataFrame,缺失值自动填充0即可。

可直接运行的代码

import pandas as pd

def parse_area(line):
    # 拆分字符串并清洗空值、首尾空格
    items = [i.strip() for i in line.split(',') if i.strip()]
    res = {}
    bedroom_cnt = 1
    for idx in range(0, len(items), 2):
        room = items[idx]
        area = float(items[idx+1])
        if room == 'Bedroom':
            res[f'Bedroom_{bedroom_cnt}'] = area
            bedroom_cnt += 1
        else:
            res[room] = area
    return res

# 逐行处理后转为DataFrame,缺失值填0
df_result = pd.DataFrame(df['Area(sq.ft)'].apply(parse_area).tolist()).fillna(0)
# 按需求调整列顺序并重命名为无后缀格式
df_result = df_result.reindex(columns=['Master Bedroom', 'Bedroom_1', 'Bedroom_2', 'Bedroom_3', 'Study Room']).rename(columns=lambda x: x.split('_')[0])

运行后得到的df_result就是你期望的输出格式,缺少的卧室、书房面积会自动填充为0。

内容的提问来源于stack exchange,提问作者Subham Saha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:45:01