【发布时间】:2019-07-19 14:35:21
【问题描述】:
我有一个包含>100 variables 的数据集,但为了说明问题,我将其简化如下。
我想groupby()colA,colB和sum()colD,同时取colC和colE的不同值
我已经尝试过以下方法,但正如您所知,这只会返回我分组的列和我总结的列,并且永远不会返回 colC 和 colE
方法1:
df.groupby(['colA','colB').aggregate({'colC': sum})
方法2:我可以像上面那样聚合它们,然后稍后将其加入同一个表以获得结果。
approach3: 在 groupby 中包含所有列,但是当我这样做时,我无法按照 Missing 的值进行分组,就像您在 colE 中看到的那样
我有什么选择?
更正 更新:我刚刚更正了我之前呈现数据的方式,它不正确
data = [
["25-5-19", "cat1", "cat3", 10, 1],
["25-5-19", "cat1", "cat3", 20, 1],
["25-5-19", "cat1", "cat3", 30, 1],
["26-5-19", "cat2", "cat4", 50, 2],
["26-5-19", "cat2", "cat4", 100, 2],
["26-5-19", "cat2", "cat4", 10, 2],
["27-5-19", "cat1", "cat5", 40, None],
["27-5-19", "cat1", "cat5", 60, None]
]
`
【问题讨论】:
-
我有一个库,用于受 knime 启发的更复杂的数据框操作。您可以检查一下,看看是否有任何功能可以帮助您的情况。 github.com/gokhangerdan/knime2python Groupby 函数在第 200 行。
-
取 colC 的不同值你想要
nunique()吗? -
@QuangHoang,您的问题帮助我找到了立即对我有用的以下解决方案。谢谢!
标签: python pandas pandas-groupby