为了账号安全,请及时绑定邮箱和手机立即绑定

计算组中元素之间的差异

计算组中元素之间的差异

白衣染霜花 2021-04-02 11:07:57
考虑以下类别中每个类别正好有两行的数据框a:d = pd.DataFrame({"a": ["a", "b", "c", "a", "b", "c"], "b": [1, 3, 1, 4, 2, 6]})>   a   b0   a   11   b   32   c   13   a   44   b   25   c   6我想计算b每个之间的绝对差异a:    a   b0   a   31   b   12   c   5
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您可以将它们分组,然后计算差异和绝对值(链):

d.groupby('a').diff().abs().dropna()

索引可能不完全符合要求,但是您可能会发现。


查看完整回答
反对 回复 2021-04-13
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

由于其中的每个类别a都恰好有2行,因此数据框可以分成两行,如下所示:


first  = d.drop_duplicates("a", keep="first")

second = d.drop_duplicates("a", keep="last")

然后合并这些并计算差异:


merged = first.merge(second, on="a")

(merged.b_x - merged.b_y).abs()


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信