我有一个类似(此示例简化)的数据框('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] 删除。
我来说两句