Pandas groupby()。apply() - 从应用函数返回None会弄乱结果

时间:2017-01-06 16:34:11

标签: python pandas data-structures dataframe

我对具有相同结构的几个数据帧执行groupby()和apply():

d = d.groupby( 'groupby_col', as_index = False ).apply( some_function )

对于某些人来说,它按预期工作,但有些失败了。失败的方式是数据框成为一个系列,其中每个元素只包含列名。它看起来像这样:

In [18]: d.head()
Out[18]:
groupby_col
134663372801          some_col_1 some_col_2 some_col_3 some_col_4...
134663372802          some_col_1  some_col_2  some_col_3  some_col_4...
134663372803          some_col_1  some_col_2  some_col_3  some_col_4...
134663372804          some_col_1  some_col_2  some_col_3  some_col_4...
134663372805          some_col_1  some_col_2  some_col_3  some_col_4...
dtype: object

BTW,应用函数返回具有正确列数的数据帧或无。

这可能是什么原因以及如何调试它?

1 个答案:

答案 0 :(得分:0)

如果不是从应用函数返回None,我总是返回一个框架 - 替换

,问题就消失了
if some_condition:
    return

if some_condition:
    return d[:0]        # return the empty frame so that the columns match