如何在Pandas中将两列不同长度的列表值合并为单个列表存入新列
Pandas合并两列列表值为新列
假设你有如下包含列表类型数据的DataFrame:
import pandas as pd df = pd.DataFrame({ 'A': [[1,2,3,4,5,6,7,8], [2,3,4,5,6,7,8,9]], 'B': [[9,10,11], [12,34,12]] })
需要将每行的A、B列列表拼接为新列C,以下是两种可行方法:
方法1:使用apply与lambda函数
直接对每行执行列表拼接操作:
df['C'] = df.apply(lambda row: row['A'] + row['B'], axis=1)
方法2:使用列表推导式
数据量较小时,这种方式效率也很高:
df['C'] = [a + b for a, b in zip(df['A'], df['B'])]
执行后得到的结果符合预期:
A B C 0 [1, 2, 3, 4, 5, 6, 7, 8] [9, 10, 11] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 1 [2, 3, 4, 5, 6, 7, 8, 9] [12, 34, 12] [2, 3, 4, 5, 6, 7, 8, 9, 12, 34, 12]
内容的提问来源于stack exchange,提问作者Devu Mehta
相关产品推荐
相关产品推荐

