Python Pandas groupby().apply()-从应用的函数返回None会弄乱结果
我对几个具有相同结构的数据帧执行groupby()和apply():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
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的一个基本事实。你不需要任何自由来告诉我这件事。