将组索引值添加到组

遗憾溢出

我有一个类似(此示例简化)的数据框('df'):

index |     timestamp    | value
================================
001   | 2020-09-20 07:00 | 1.4
002   | 2020-09-20 07:00 | 1.5
001   | 2020-09-20 09:00 | 1.6
002   | 2020-09-20 09:00 | 1.4
001   | 2020-09-20 11:00 | 1.23
002   | 2020-09-20 11:00 | 1.46

如果执行此操作:grouped = df.groupby('timestamp')我现在有一个由三个组组成的groupby。我现在需要添加一个“ date_time_trigger”列,其中包含基于组索引的值:

index |     timestamp    | value | date_time_trigger
================================================
001   | 2020-09-20 07:00 | 1.4   | triggergroup1
002   | 2020-09-20 07:00 | 1.5   | triggergroup1
001   | 2020-09-20 09:00 | 1.6   | triggergroup2
002   | 2020-09-20 09:00 | 1.4   | triggergroup2
001   | 2020-09-20 11:00 | 1.23  | triggergroup3
002   | 2020-09-20 11:00 | 1.46  | triggergroup3

然后,我需要将这些组组合回到原始数据框中。我试过简单地将列添加到原始数据帧,然后在组迭代器中更改其值:

idx=0
df['date_time_trigger']='foo'
grouped = df.groupby('timestamp')
for name,group in grouped:
  idx=idx+1
  group['date_time_trigger']='triggergroup'+str(idx)

据我所知,date_time_trigger在每个组中设置了的值,但是现在我需要将该组重新组合到原始数据帧df中,以继续进行此过程。我可以在文档中找到的唯一方法是应用某种类型的聚合,例如均值或平均,但是我只需要groupby将标签添加到每个组实例。如何恢复数据框?

贝尼

检查与 factorize

df['group'] = df['timestamp'].factorize()[0]+1

方法二

df.groupby('timestamp').ngroup().add(1).astype(str).radd('triggergroup')

0    triggergroup1
1    triggergroup1
2    triggergroup2
3    triggergroup2
4    triggergroup3
5    triggergroup3
dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章