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

Python 3.8下如何按空格将DataFrame单列拆分为4列并解决报错

问题解决方法

报错根源

TypeError: 'function' object is not subscriptable 报错是因为代码中对函数类型的对象使用了[]下标操作,你遇到的情况90%以上是以下两种原因:

  • 引用id列时漏写了引号,直接写了df1[id]而非df1["id"]:Python内置了id()函数,你没加引号时解释器会把id识别为内置函数,对函数加[]取索引就会触发该报错
  • 之前的代码中不小心覆盖了df1、str等内置变量/你定义的DataFrame变量为函数类型

正确实现步骤

第一步:排查变量问题

依次运行以下代码确认变量类型正常:

# 确认df1是DataFrame类型
print(type(df1))
# 输出应为 <class 'pandas.core.frame.DataFrame'>

# 确认你没有覆盖str内置类
print(type(str))
# 输出应为 <class 'type'>

如果上述输出不符合,检查之前的代码修改变量名,不要覆盖内置对象和已定义的DataFrame变量。

第二步:拆分id列

优先用性能更高的str.split方法实现,注意用\s+匹配任意数量的空白字符,避免多个连续空格导致拆分出错:

# 先强制将id列转为字符串类型,避免非字符串类型无str属性的问题
df1["id"] = df1["id"].astype(str)

# 按空格拆分并赋值到新列
df1[["City", "State", "Country", "indicator"]] = df1["id"].str.split(pat="\s+", expand=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:39:03