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

如何在Pandas中将DataFrame某列的行值拆分为多列?

解决方案

这里有几种简单可靠的方法可以将列'A'拆分为三个独立数值列:

方法1:正则表达式提取(推荐,适配格式稳定的字符串)

利用str.extract结合正则直接匹配括号内的三个浮点数,一步生成新列:

import pandas as pd

# 你的原始数据
a = ['[16.01319488  6.1095932  -0.14837995]',
 '[16.10400501  6.23724404 -0.1727245 ]',
 '[16.195107    6.36434895 -0.19695716]',
 '[16.2864465   6.49178233 -0.22124142]',
 '[16.37796913  6.62041857 -0.24574078]',
 '[16.46962054  6.75113206 -0.27061875]',
 '[16.56134636  6.88479719 -0.29603881]',
 '[16.65309334  7.02229002 -0.32216479]',
 '[16.74480491  7.16448166 -0.34915957]',
 '[16.83642781  7.31224812 -0.37718693]',
 '[16.92790769  7.46646379 -0.4064104 ]',
 '[17.0190533   7.62784345 -0.4369622 ]',
 '[17.10912594  7.79646343 -0.46884957]',
 '[17.19725     7.97224045 -0.50204846]']
b = [0.0,
 0.01999999989745438,
 0.03999999979490875,
 0.05999999969236312,
 0.0799999995898175,
 0.09999999948727188,
 0.1199999993847262,
 0.1399999992821806,
 0.159999999179635,
 0.1799999990770894,
 0.1999999989745438,
 0.2199999988719981,
 0.2399999987694525,
 0.2599999986669069]
test = pd.DataFrame({'A':a, 'B':b})

# 提取三个数值并转为浮点型
test[['A1', 'A2', 'A3']] = test['A'].str.extract(r'\[([\d.-]+)\s+([\d.-]+)\s+([\d.-]+)\]', expand=True).astype(float)

这个方法不管数值间的空格数量多少,都能精准提取,且直接生成数值列,适合后续计算。

方法2:字符串分割处理

先去除首尾方括号,再按任意空格分割成列:

# 去掉[]后按空格分割
split_cols = test['A'].str.strip('[]').str.split(r'\s+', expand=True)
# 重命名列并合并到原表
split_cols.columns = ['A1', 'A2', 'A3']
test = pd.concat([test, split_cols.astype(float)], axis=1)

步骤直观,适合对字符串操作熟悉的场景,r'\s+'能处理多个连续空格的情况。

方法3:转为列表后展开

利用ast.literal_eval将字符串转为Python列表,再直接展开为列:

import ast

# 把字符串转成列表,再转为DataFrame
list_cols = test['A'].apply(ast.literal_eval).apply(pd.Series)
list_cols.columns = ['A1', 'A2', 'A3']
test = pd.concat([test, list_cols], axis=1)

这个方法适合字符串是标准列表格式的场景,无需手动处理括号和空格,转换后直接就是数值类型。

处理完成后,原DataFrame会保留'B'列,新增'A1'、'A2'、'A3'三个独立数值列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:35:17