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

Pandas新建列:提取列表前三个元素用连字符连接并移除方括号

解决方案

分两种情况处理,取决于你的col2是列表类型还是字符串类型:

情况1:col2是列表类型

如果col2存储的是Python列表(不是字符串格式的列表),直接用apply结合切片和字符串拼接即可:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'col1': ['ABC'],
    'col2': [['hello', 'hi', 'hey', 'hiya']]
})

# 生成col3
df['col3'] = df['col2'].apply(lambda x: '-'.join(x[:3]))

执行后就能得到你要的结果,join方法会直接取列表里的元素拼接,不会带方括号。

情况2:col2是字符串类型

如果col2是看起来像列表的字符串(比如值是"[hello, hi, hey, hiya]"),需要先把字符串转成列表再处理:

import pandas as pd

# 示例数据(col2为字符串)
df = pd.DataFrame({
    'col1': ['ABC'],
    'col2': ["[hello, hi, hey, hiya]"]
})

# 清理字符串并生成col3
df['col3'] = df['col2'].str.strip('[]')\
                       .str.split(', ')\
                       .apply(lambda x: '-'.join(x[:3]))

这样就能彻底去掉方括号,得到预期的hello-hi-hey格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:36:29