首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的dcast复制

python中的dcast复制
EN

Stack Overflow用户
提问于 2014-07-31 02:09:15
回答 1查看 868关注 0票数 0

我有一个大熊猫数据框架,如下所示:

代码语言:javascript
复制
col1     col2     col3    col4
 a        d        sd       2
 b        sd       sd       2
 a        ds       hg       3
 a        ew       rt       3
 b        ss       qq       4

我希望输出类似于以下内容:

代码语言:javascript
复制
col1     sum
a        8
b        6

“‘sum”列包含col1的唯一值的col4的所有值的总和。在R中,这可以使用dcast来完成

代码语言:javascript
复制
dcast(dataframe, col1 ~ count, sum, value.var = 'col4')

我如何在python中做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-07-31 02:23:51

我认为您正在寻找的就是Group By: split-apply-combine中描述的内容

代码语言:javascript
复制
groups = df.groupby('col1')
splitgroups = groups['col4']
sums = splitgroups.aggregate(np.sum)

或者,更直接地说:

代码语言:javascript
复制
sums = df.groupby('col1').aggregate({'col4': np.sum})

但是要阅读整个页面;Pandas的groupby特性比R dcast更灵活(它还可以完成SQL聚合、Excel pivots等所能做的一切),但这意味着您的想法可能并不总是在两者之间一一对应。

这就是它的实际作用:

代码语言:javascript
复制
>>> # your DataFrame, with a default index
>>> df = pd.DataFrame({'col1': 'a b a a b'.split(), 'col2': 'd sd ds ew ss'.split(), 'col3': 'sd sd hg rt qq'.split(), 'col4': (2, 2, 3, 3, 4)})
>>> sums = df.groupby('col1').aggregate({'col4': np.sum})
>>> sums
      col4
col1
a        8
b        6
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25043927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档