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

如何在Pandas DataFrame中生成对应字符串值的同长度数组新列

解决Pandas中根据数组列长度生成重复字符串列表的问题

构造示例数据

先还原你的输入DataFrame:

import pandas as pd

df = pd.DataFrame({
    'string_col': ['fruits', 'flowers', 'animals'],
    'array_col': [['apple', 'banaana'], ['rose', 'sunflower'], ['lion', 'tiger']]
})

三种实现方法

方法1:apply结合列表生成式(简单直观)

直接对每一行处理,用string_col的值重复对应array_col的长度次:

df['new_col'] = df.apply(lambda row: [row['string_col']] * len(row['array_col']), axis=1)

方法2:矢量化分组(大数据集更高效)

避免apply的循环,用矢量化操作提升性能:

df['new_col'] = df['string_col'].repeat(df['array_col'].str.len()).groupby(level=0).agg(list)

方法3:列表推导式(速度快,代码简洁)

利用Python原生列表推导,效率优于apply:

df['new_col'] = [[s] * len(arr) for s, arr in zip(df['string_col'], df['array_col'])]

最终输出结果

处理后得到的DataFrame如下:

string_colarray_colnew_col
fruits['apple', 'banaana']['fruits', 'fruits']
flowers['rose', 'sunflower']['flowers', 'flowers']
animals['lion', 'tiger']['animals', 'animals']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:20:28