如何在DataFrame中将同索引列表元素合并为嵌套子列表
Pandas合并DataFrame同索引元素生成新列
首先初始化你的数据集:
import pandas as pd list1 = ['here', 'list', 'to'] list2 = ['is', 'of', 'be'] list3 = ['a', 'strings', 'combined'] df = pd.DataFrame() df['list1'] = list1 df['list2'] = list2 df['list3'] = list3
方案1:合并为单个字符串的列表格式
要得到每个索引位置元素拼接成单个字符串并包裹为列表的结果,使用apply遍历每行,拼接后放入列表即可:
df['list4'] = df.apply(lambda row: [' '.join([row['list1'], row['list2'], row['list3']])], axis=1)
最终df['list4']的输出符合期望:
0 [here is a] 1 [list of strings] 2 [to be combined] Name: list4, dtype: object
方案2:保留独立元素的列表格式
如果不需要拼接字符串,直接保留每个元素的列表结构,可以用两种方式实现:
- 方式一:
apply直接组合元素
df['list4'] = df.apply(lambda row: [row['list1'], row['list2'], row['list3']], axis=1)
- 方式二:用
agg批量处理列
df['list4'] = df[['list1', 'list2', 'list3']].agg(list, axis=1)
两种方式得到的结果都是:
0 [here, is, a] 1 [list, of, strings] 2 [to, be, combined] Name: list4, dtype: object
内容的提问来源于stack exchange,提问作者Link
相关产品推荐
相关产品推荐

