将pandas groupby.apply的输出保存到新列

时间:2019-11-14 18:42:01

标签: python pandas dataframe group-by apply

我有一个函数正尝试应用于Pandas Dataframe,以便将该函数的输出另存为新列。我想对分组的Dataframe的列进行处理,其中包含每个组的行的索引。基于这些索引,函数确定行是否位于组的开始,中间或结尾。然后,我想将此输出保存到该行的新列中。

这是功能:

def add_position_within_group(self,group):
    length_of_group = group.max()
    three_lists = self.split_lists_into_three_parts(range(length_of_group))
    for x in group:
        if int(x) in three_lists[0]:
            return 0
        elif int(x) in three_lists[1]:
            return 1
        elif int(x) in three_lists[2]:
            return 2

这就是我尝试应用的方式:

compound_data_frame["position_in_sequence"] = compound_data_frame.groupby('id')["group_index"].apply(self.add_position_within_group)

新列应具有0、1或2时具有所有NaN值。

任何帮助将不胜感激。

0 个答案:

没有答案