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

如何通过列名列表批量合并Pandas列中的列表元素

批量合并Pandas中多列的列表元素

当然可以!当需要处理的列名数量较多时,完全不用手动逐个写出列名相加,用Pandas的工具方法结合列名列表就能轻松实现批量合并,下面给你两种实用的实现方式:

方法一:使用apply遍历行合并

通过apply方法逐行处理指定列,将每行中各列的列表依次合并:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'allmz':([[1,2,3],[2,4,5],[2,5,5],[2,3,5],[1,4,5]]),
    'allint':([[11,31,31],[21,41,51],[41,51,51],[11,31,51],[1,51,11]]),
    'allx':([[6,7,3],[2,4,5],[2,5,5],[2,9,5],[3,4,5]])
})

# 定义需要合并的列名列表
columns_to_merge = ['allmz','allint','allx']

# 批量合并列中的列表
df['new'] = df[columns_to_merge].apply(lambda row: sum(row, []), axis=1)

print(df)

代码说明:

  • df[columns_to_merge]筛选出需要处理的目标列
  • lambda row: sum(row, []):对每一行来说,sum会把行内所有列表元素依次拼接,初始值设为空列表[],确保合并后的结果是一个完整的列表

方法二:使用agg聚合合并

另一种方式是用agg方法,效果和apply类似,写法稍有不同:

df['new'] = df[columns_to_merge].agg(lambda x: sum(x.tolist(), []), axis=1)

灵活调整列顺序或重复列

如果需要重复合并某列(比如你示例中两次合并allint),只要在列名列表中重复该列名即可:

columns_to_merge = ['allmz','allint','allint','allx']

这样合并后的new列就会包含allmz+allint+allint+allx的列表内容,和你手动写df['allmz'] + df['allint'] + df['allint'] + df['allx']效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:36:06