我有一个 Pandas datafame,其中特定列中的行是一组 id。我想在 15 分钟内汇总并找到所有此类唯一 ID。
timestamp | ids | some_int
00:03:00 {id1, id2, id3} 5
00:10:00 {id2, id4, id7, id10} 9
00:25:00 {id7, id22, id24} 10
00:45:00 {id23, id30} 24
df.resample('15min').agg({'ids': ??, 'some_int': sum)
我已经在 ids 列上尝试了 sum 和其他一些转换,但我还没有完全掌握它。
最佳答案
更改 set
至 list
然后使用 sum
df.ids=df.ids.apply(list)
s=df.resample('15min').agg({'ids': 'sum', 'some_int': 'sum'})
s.loc[s.ids.eq(False),'ids']=''
s.ids=s.ids.apply(set)
s
Out[134]:
ids some_int
timestamp
2018-02-27 00:00:00 {id2, id4, id7, id10, id1, id3} 14
2018-02-27 00:15:00 {id24, id7, id22} 10
2018-02-27 00:30:00 {} 0
2018-02-27 00:45:00 {id23, id30} 24
关于python - 如何聚合集合的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49013318/