如何解决如何聚合`dict`类型的列
我有一个Frame
,如下所示:
x = dt.Frame(k = [1,1,2],v = [{'a':1,'b':2},{'a':3},{'b':4}])
如下所示:
k v
▪▪▪▪ ▪▪▪▪▪▪▪▪
1 {'a': 1,'b': 2}
1 {'a': 3}
2 {'b': 4}
我想做的是1)按k
分组,2)将字典中的计数汇总。
所需的输出:
k v
▪▪▪▪ ▪▪▪▪▪▪▪▪
1 {'a': 4,'b': 2}
2 {'b': 4}
使用最新的pydatatable
(v0.11)是否可以实现?
解决方法
如果您的数据集很大,请考虑将所有词典扩展为一个框架:
>>> DT = dt.cbind(dt.Frame(_key=[1,1,2]),dt.Frame([{'a':1,'b':2},{'a':3},{'b':4}]))
>>> DT
| _key a b
-- + ---- -- --
0 | 1 1 2
1 | 1 3 NA
2 | 2 NA 4
[3 rows x 3 columns]
在此之后,分组很容易:
>>> from datatable import sum,f,by
>>> DT[:,sum(f[:]),by(f._key)]
| _key a b
-- + ---- -- --
0 | 1 4 2
1 | 2 0 4
[2 rows x 3 columns]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。