我正在开展一个对数据进行自动描述性分析的项目。在一行代码中,我发送了一行数据帧,我希望在单个列表中返回列中的所有值。
代码行是:
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条件,但我需要知道它为什么不起作用。我可以不将函数应用于单个或数据帧吗?
答案 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)