【发布时间】:2020-02-16 16:37:01
【问题描述】:
对于一个项目,我操作数据集的几列,然后将这些新创建的列连接回整个数据集,然后对操作的字段进行汇总。
操作和合并没有问题,但是 groupby 功能没有返回任何结果。我想知道如何找出为什么它没有返回任何东西。它加载代码,然后将结果打印在 Jupyter 笔记本中,其中仅包括我请求的列但返回了 0 行。
在使用 groupby 功能时,列有任何限制吗? - 我使用 40 个 groupby 列和 10 个字段数量字段进行汇总。
有没有我可以尝试的替代方案? - 我遇到了一些使用 numpy 的方法,这可能在内存中更有效。但真的找不到解决 40 列问题的有效方法。
我在网上搜索过,但找不到任何答案。 我是 pandas 的新手,所以在深入探讨这个主题之前,我只想咨询一下我是否忽略了某些东西,或者是否有更简单的方法来实现我想要的。
因为数据框有超过 40 列可以分组,大约有 10 个值字段,我将它们包含在两个列表对象中。 由于以下 stackoverflow 页面,这是我克服的第一个障碍。
这些列表随后用于 groupby 功能。
#A way i tried solving this, due to the limitation of only 9 variables if you enter them in your groupby functionality.
groupcolumns = ['aa','ab','ac','ad'] #etc
amountcolumns = ['z1', 'z2', 'z3', 'z4'] #etc
df1 = df.groupby(groupcolumns)[amountcolumns].sum
df1.reset_index()
我希望它会返回一个 DataFrame,该 DataFrame 汇总在金额列的 groupcolumns 上。
如果有人可以帮助我,那就太好了! 提前致谢。
【问题讨论】:
-
我认为是数据本身的问题,但是没有证据(数据)我很难说。比如,你有缺失值吗?你是怎么处理的?
-
试试这个
df1 = df.groupby(groupcolumns)[amountcolumns].sum()如果不起作用,请提供更多可重复的描述。 -
@QuantChristo 确实很抱歉,我写错了。
-
@powerPixie 这是一个通用数据模型,我无法共享,但确实有一些 NaN 值,因为并非总是填充所有列。会是这样吗?我应该只包含带有值的列吗?
-
@powerPixie 这确实是其中包含 NaN 值的一列,感谢您标记此问题,将验证我将来需要如何解决此问题。
标签: python python-3.x pandas-groupby summarize