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

如何从Pandas DataFrame列提取值并拆分为多列?

嘿,这个需求在处理嵌套列表格式的数据时超常见,我给你分享几种实用的实现方法,你可以根据自己的数据集大小和需求选择:

首先先构造一个示例DataFrame来模拟你的数据:

import pandas as pd

df = pd.DataFrame({
    'original_col': [[2, 4], [3, 4], [1, 4], [0, 0]]
})

方法1:矢量化str访问器(推荐大数据集)

这是速度最快的方法,因为用了Pandas的矢量化操作,避免了逐行循环:

# 提取列表中的第一个和第二个元素作为新列
df['col_1'] = df['original_col'].str[0]
df['col_2'] = df['original_col'].str[1]

# 如果你不需要原来的列,可以删掉它
df = df.drop('original_col', axis=1)

方法2:apply(pd.Series)拆分(通用型)

如果你的列表长度可能不固定,或者想一次性拆分所有元素,这个方法更灵活:

# 把每个列表转换成Series,自动按位置生成列
split_cols = df['original_col'].apply(pd.Series)
# 给新列命名
split_cols.columns = ['col_1', 'col_2']

# 把拆分后的列合并到原DataFrame,再删掉原列
df = pd.concat([df, split_cols], axis=1).drop('original_col', axis=1)

方法3:直接构造新DataFrame(最简洁)

如果原DataFrame只有这一列需要处理,直接用列表生成新的DataFrame最省事:

new_df = pd.DataFrame(df['original_col'].tolist(), columns=['col_1', 'col_2'])

不管用哪种方法,最终得到的结果都是你想要的格式:

col_1  col_2
0      2      4
1      3      4
2      1      4
3      0      0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:32:20