将列中的值连接到Python中的列表

时间:2017-11-14 09:10:14

标签: python

我正在开展一个对数据进行自动描述性分析的项目。在一行代码中,我发送了一行数据帧,我希望在单个列表中返回列中的所有值。

代码行是:

file_name1['validate'] = file_name1.apply(lambda x: ast.literal_eval(x[2]) + [x[3]] + [x[4]] + [x[5]] + [x[0]] + [x[1]], axis=1)

并且filename1看起来像这样

Value_share_total_next Value_share_total_prev Path                                            IYA      upper      lower  
1497852                1270937                ['CVS + ALB + LNG CORP WO HI CENSUS TA']   117.85415  91.945763  66.936457

我想在列表中连接这些值,我得到错误:

ValueError: Wrong number of items passed 6, placement implies 1

编辑:我面临的问题是,只有我的数据帧的长度正好是1.如果我的数据帧的长度是> 1然后代码行正在运行。我可以添加一个if else条件,但我需要知道它为什么不起作用。我可以不将函数应用于单个或数据帧吗?

1 个答案:

答案 0 :(得分:0)

对于每一行,当只分配了一个空格时,您传递了6个项目的列表(一列:'验证')。要确保pandas了解您要传递的数据类型(列表)并且不尝试解压缩,您可以使用括号:

file_name1['validate'] = file_name1.apply(lambda x: (ast.literal_eval(x[2]) + [x[3]] + [x[4]] + [x[5]] + [x[0]] + [x[1]]), axis=1)