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

如何在Pandas中将空格分隔的类列表数据拆分为多列

拆分DataFrame中的类列表字符串为多列

问题分析

目标列存储的是类列表格式的字符串(而非真正的Python列表),直接用apply(pd.Series)无法拆分——因为字符串本身是单个元素,必须先做字符串清洗和转换。

解决方案代码

import pandas as pd

# 原数据
df = pd.DataFrame({'Emojis':['[1 2 3 4]', '[4 5 6]']})

# 1. 清洗字符串并拆分:去掉首尾方括号,按空格分割为多列
split_cols = df['Emojis'].str.strip('[]').str.split(' ', expand=True)

# 2. 给拆分后的列命名为it1~it5
split_cols.columns = [f'it{i+1}' for i in range(split_cols.shape[1])]

# 3. 补充不足5列的部分,用pd.NA填充(对应需求中的null)
for col_idx in range(split_cols.shape[1], 5):
    split_cols[f'it{col_idx+1}'] = pd.NA

# 4. 和原DataFrame拼接
final_df = pd.concat([df, split_cols], axis=1)

# 查看结果
print(final_df)

输出结果

Emojis it1 it2 it3   it4   it5
0  [1 2 3 4]   1   2   3     4  <NA>
1    [4 5 6]   4   5   6  <NA>  <NA>

关键步骤说明

  • str.strip('[]'):移除字符串首尾的方括号,得到纯数字空格分隔的字符串(比如"1 2 3 4")
  • str.split(' ', expand=True):按空格分割字符串并直接展开为多列,自动为元素不足的行填充NaN
  • 列命名和补全:确保最终列数固定为5,不足的列用pd.NA填充,匹配需求中的null

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:20:43