如何在Pandas中将多列合并为列表形式的单列?
解决DataFrame多列合并为列表列的问题
你之前的代码报错,是因为list((df['kw1'], df['kw2'], df['kw3']))生成的是包含3个Series的列表,长度仅为3,但你的DataFrame有141行,赋值时长度不匹配自然触发ValueError。
下面是几种正确的实现方式:
方法一:使用apply按行生成列表
逻辑直观,适合快速理解:df['keywords'] = df.apply(lambda row: [row['kw1'], row['kw2'], row['kw3']], axis=1)方法二:用to_numpy转数组后转列表(效率更高)
处理大数据量时优先选择,性能优于apply:df['keywords'] = df[['kw1', 'kw2', 'kw3']].to_numpy().tolist()方法三:使用agg方法聚合
利用pandas聚合函数直接按行生成列表:df['keywords'] = df[['kw1', 'kw2', 'kw3']].agg(list, axis=1)
内容的提问来源于stack exchange,提问作者Soccerball123
相关产品推荐
相关产品推荐

