dataframe groupby 出现错误 incompatible index of inserted column with frame index

新增一列用于储存分组计算后的值有时候会出现错误: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)
在这里插入图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值