如何将DataFrame中的部分列转换为单列列表形式?
将DataFrame指定列合并为单列列表
要实现把原DataFrame中的salary、department、days列合并成列表形式的新列,同时保留Name和other列,你可以用Pandas的apply方法快速完成:
完整代码示例
import pandas as pd # 构建原始DataFrame data = { 'Name': ['ben', 'alex', 'linn', 'luke'], 'salary': [1000, 3000, 600, 5000], 'department': ['A', 'B', 'C', 'D'], 'days': [90, 80, 55, 88], 'other': ['abc', 'gf', 'jgj', 'gg'] } df = pd.DataFrame(data) # 将指定列逐行转为列表,生成新列`list` df['list'] = df[['salary', 'department', 'days']].apply(list, axis=1) # 筛选需要的列得到目标DataFrame df1 = df[['Name', 'list', 'other']] # 打印结果 print(df1)
运行结果
Name list other 0 ben [1000, A, 90] abc 1 alex [3000, B, 80] gf 2 linn [600, C, 55] jgj 3 luke [5000, D, 88] gg
另一种实现方式(使用agg)
如果你偏好agg方法,也可以这样写:
df['list'] = df[['salary', 'department', 'days']].agg(lambda row: row.tolist(), axis=1) df1 = df[['Name', 'list', 'other']]
核心逻辑是通过axis=1指定按行操作,把每行的指定列值打包成列表,最后保留需要的列即可。
内容的提问来源于stack exchange,提问作者user20777609
相关产品推荐
相关产品推荐

