pandas df.apply返回相同列表的系列(如map),其中应该返回一个列表

时间:2017-12-21 21:09:09

标签: python pandas

我有一个函数,它接受一行daraframe(pd.Series)并返回一个列表。我们的想法是将其应用于数据框并生成一个新的pd.Series列表,每行一个:

sale_candidats = closings.apply(get_candidates_3, axis=1,
                                sales=sales_ts,
                                settings=settings,
                                reduce=True)

然而,似乎pandas尝试将它返回的列表(可能是第一行)映射到原始行,并引发错误(即使reduce = True):

ValueError: Shape of passed values is (10, 8), indices imply (10, 23)

当我将函数转换为返回集而不是列表时,整个事情开始工作 - 除了返回具有相同形状和索引/列名称的数据帧作为原始数据帧,除了每个单元格都填充相应的行()设置。

看起来很像我的错误...我怎样才能返回一个pd.Series

2 个答案:

答案 0 :(得分:1)

似乎这种行为确实是最新版本的熊猫中的一个错误。看一下这个问题:

https://github.com/pandas-dev/pandas/pull/18577

答案 1 :(得分:0)

你可以在for循环中应用该函数,因为这就是所有适用的。你不会注意到大的速度惩罚。