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

如何拆分DataFrame中dtype为Object且存列表格式字符串的列?

把字符串格式的列表列拆分为两列的方法

方法一:用ast.literal_eval解析(推荐)

这种方法能安全地把字符串形式的列表转换成真实的Python列表,适配各种规范的列表字符串格式。

  • 导入ast模块,用它的literal_eval方法解析teams列的每个字符串
  • 把解析后的列表展开成两列

示例代码:

import ast
import pandas as pd

# 示例数据
df = pd.DataFrame({'teams': ["['Australia', 'Sri Lanka']", "['India', 'England']"]})

# 将字符串转为列表
df['teams_list'] = df['teams'].apply(ast.literal_eval)

# 拆分列表为两列
df[['team1', 'team2']] = pd.DataFrame(df['teams_list'].tolist(), index=df.index)

# 可选:删除中间生成的teams_list列
df = df.drop('teams_list', axis=1)

方法二:直接字符串拆分(仅适合格式完全固定的场景)

如果你的teams列字符串格式完全统一(比如都是['队名1', '队名2']),可以用字符串操作拆分,但容错性差,格式稍有变化就会出错。

示例代码:

import pandas as pd

df = pd.DataFrame({'teams': ["['Australia', 'Sri Lanka']", "['India', 'England']"]})

# 去掉首尾的[],再按"', '"拆分
df[['team1', 'team2']] = df['teams'].str.strip("[]").str.split("', '", expand=True)

# 清理队名前后的单引号
df['team1'] = df['team1'].str.strip("'")
df['team2'] = df['team2'].str.strip("'")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:33:23