【问题标题】:Concatenating values from columns to a list in Python将列中的值连接到 Python 中的列表
【发布时间】:2018-04-27 03:46:48
【问题描述】:

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

代码行是:

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)

文件名1看起来像这样

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 条件,但我需要知道它为什么不起作用。我不能将函数应用于单个或数据框吗?

【问题讨论】:

标签: python


【解决方案1】:

当只分配一个空间(一列:'validate')时,对于每一行,您都会传递一个包含 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)

【讨论】:

  • 我会试试这个并告诉你。
  • 它没有用。我对我的问题进行了编辑。如果你能帮助我,那就太好了。提前致谢。
猜你喜欢
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 2010-11-06
  • 2021-03-30
  • 2019-01-14
  • 2017-11-29
  • 1970-01-01
相关资源
最近更新 更多