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

Python Pandas groupby().apply()-从应用的函数返回None会弄乱结果,python,pandas,data-structures,dataframe,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 som

我对几个具有相同结构的数据帧执行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
顺便说一句,应用的函数要么返回列数正确的数据帧,要么不返回


出现这种情况的原因可能是什么?如何调试它?

如果应用函数中没有返回任何值,而是总是返回一个替换的帧,那么问题就会消失

if some_condition:
    return


如果我总是返回一个帧替换,而不是从应用函数返回None,那么问题就消失了

if some_condition:
    return


您是否可以发布实际原始数据和代码,包括您的
some_函数
,其中有时返回一个序列,而另一些返回一个数据帧。不幸的是,我无权这样做。您是否可以发布实际原始数据和代码,包括
some_函数
,其中有时返回一个序列,而另一些返回一个序列不幸的是,我无权这么做。这是python的一个基本事实。你不需要任何自由来告诉我这是python的一个基本事实。你不需要任何自由来告诉我这件事。