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

如何在Pandas DataFrame中将指定多列转为新的列表列?

解决方法:将指定列转为每行的列表列

不用循环,Pandas有两种简洁高效的方式实现需求:

方法1:使用apply按行转列表

利用apply方法指定按行处理,把每行从索引3开始的列值转成列表:

import pandas as pd

orig_df = pd.read_csv('zipcode_price_dataset.csv')
df = orig_df.loc[orig_df['State'] == "CA"]

# 添加新列,存储每行从索引3开始的列值列表
df['new_list_col'] = df.iloc[:, 3:].apply(list, axis=1)

方法2:直接操作numpy数组(性能更优)

通过提取底层numpy数组后转成嵌套列表,这种方式比apply更快,适合大数据集:

import pandas as pd

orig_df = pd.read_csv('zipcode_price_dataset.csv')
df = orig_df.loc[orig_df['State'] == "CA"]

df['new_list_col'] = df.iloc[:, 3:].values.tolist()

说明

  • 两种方法都无需手动写循环,Pandas内部会优化处理逻辑
  • iloc[:, 3:]用来快速选取从第3列开始的所有列(索引从0开始)
  • 方法2的性能更优,因为values.tolist()是向量化操作,避免了apply的行级循环开销

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:06:29