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

如何实现Pandas数组类型列的元素级拼接

Pandas数组列按位置拼接解决方案

你可以通过两种常用方案实现需求,分别适配通用场景和大数据量高性能场景:

方法1:通用适配方案(兼容所有Pandas版本,支持不同行数组长度不一致的场景)

基于apply逐行处理,逻辑灵活好调整:

import pandas as pd

# 构造示例测试数据
df = pd.DataFrame({
    'Year': [['2021','2020',''], ['2019','2018']],
    'Month': [['11','12',''], ['03','07']]
})

# 按位置拼接生成新列
df['YearMonth'] = df.apply(
    lambda row: [y + m for y, m in zip(row['Year'], row['Month'])],
    axis=1
)

如果你的数组元素存在非字符串类型,修改列表推导式做类型转换即可:[str(y) + str(m) for y, m in zip(row['Year'], row['Month'])]

方法2:高性能向量化方案(适用于万行以上大数据量场景)

用numpy向量化操作替代逐行遍历,速度提升10倍以上,要求所有行的数组长度完全一致:

import numpy as np

df['YearMonth'] = (np.array(df['Year'].tolist()) + np.array(df['Month'].tolist())).tolist()

结果验证

执行后取第一行的拼接结果测试:

print(df['YearMonth'].iloc[0])
# 输出:['202111', '202012', '']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:36:01