python - 如何聚合集合的列?

标签 python python-3.x pandas dataframe

我有一个 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 和其他一些转换,但我还没有完全掌握它。

最佳答案

更改 setlist然后使用 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/

相关文章:

python - ReportLab 表的列跨越 PDF 页面上的所有行?

python - pyQt5从字典创建按钮连接到具有附加值的函数

python 键入模块在 python 3.5 中缺少 Coroutine 类

python - 高效地与请求异步下载文件

python - 将dataframe分成n个相等的时间间隔,进行groupby,其中时间间隔为(time.max() - time.min())/n

python - 如何使用 Pandas 以更优化的方式将字符串值转换为-int值

python - Pandas 合并无法提取公共(public)索引值

python - 提高Python比较两个列表的性能

python - 左连接 Django ORM

python-3.x - 如何在标志从 0 变为 1 之前和之后提取行