新增一列用于储存分组计算后的值有时候会出现错误:incompatible index of inserted column with frame index
该问题应为groupby计算生成的为series,其产生了索引导致不能直接插入一个“列”中。
产生的series如下:
所以在赋值的时候应直接赋值series的value,我计算的是分组然后计算偏移量,代码如下:
#书时间排序,我这里是可以直接排序的,如果有需要可以进行分组时间排序,加个group by 并且用apply使用匿名函数进行排序即可
df.sort_values('时间', inplace = True)
#按分组,对某一列进行排序排名,这里可以按分组给出排名
df['counter'] = df.groupby('ID')['时间'].rank()
#首先我这里已经是按时间排序完成的,原数据是“累积量”,所以我这边要计算偏移值,可视作往上一行计算偏移量(使用shift函数),最后取Series的values赋值到dataframe的新列。
df['粉丝团'] = df.groupby('ID', as_index=False).apply(lambda x : x['粉丝团(增量)'] - x['粉丝团(增量)'].shift(1)).values #偏移量计算
效果如下:(8814 - 8749 = 65)