如何在Pandas DataFrame中创建由指定列值组成列表的col_combine列
没问题,这事儿很容易搞定,给你两种实用的方法,按需选择就行:
方法一:用apply逐行生成列表
这是最直观的方式,指定要合并的列后,按行把值打包成列表:
import pandas as pd # 先初始化你给出的DataFrame df = pd.DataFrame([[-1,1,2,3,4],[-2,5,6,7,8]],columns=["col_other","cola","colb","colc","cold"]) # 定义要合并的目标列 target_cols = ["cola", "colb", "colc", "cold"] # 创建col_combine列 df["col_combine"] = df[target_cols].apply(list, axis=1)
这里axis=1是关键,它告诉Pandas我们要按行处理数据,apply(list)会把每行的目标列值直接转成列表,正好得到你要的[1,2,3,4]和[5,6,7,8]。
方法二:向量化操作(适合大数据集)
如果你的数据量很大,apply的逐行处理效率可能不够,这时候可以用向量化的方式,速度会快很多:
df["col_combine"] = df[target_cols].to_numpy().tolist()
先通过to_numpy()把目标列转成二维数组,再用tolist()直接转换成嵌套列表,效果和上面完全一样,但性能更优。
你可以打印df看看结果,col_combine列的内容完全符合你的要求~
内容的提问来源于stack exchange,提问作者william007
相关产品推荐
相关产品推荐

