gpt4 book ai didi

python - Pandas 中按多列分组

转载 作者:行者123 更新时间:2023-12-01 04:09:12 25 4
gpt4 key购买 nike

我基本上有一个如下所示的数据集

Col1  Col2  Col3  Count
A B 1 50
A B 1 50
A C 20 1
A D 17 2
A E 5 70
A E 15 20

假设它被称为数据。我基本上做 data.groupby(by=['Col1', 'Col2', 'Col3'], as_index=False, sort=False).sum() ,这应该给我这个:

Col1  Col2  Col3  Count
A B 1 100
A C 20 1
A D 17 2
A E 5 70
A E 15 20

但是,这会返回一个空数据集,其中确实有我想要的列,但没有行。唯一需要注意的是 by 参数是动态计算的,而不是固定的(这是因为列可能会改变,尽管 Count 总是存在)。

关于为什么会失败以及如何修复它有什么想法吗?

编辑:进一步搜索显示 pandas 的 groupby 删除了任何列中具有 NULL 的行。这对我来说是一个问题,因为每一列都可能为 NULL。因此,真正的问题是:有什么合理的方法来处理 NULL 并仍然使用 groupby?

最佳答案

希望在这里得到纠正,但我不确定是否有一种干净的方法来处理丢失的数据。正如您所指出的,Pandas 只会从 groupby 中排除包含 NaN 值的行

您可以使用超出数据范围的内容填充 NaN 值:

data = pd.read_csv("c:/Users/simon/Desktop/data.csv")

data.fillna(-999, inplace=True)

new = data.groupby(by=['Col1', 'Col2', 'Col3'], as_index=False, sort=False).sum()

这很困惑,因为它不会将这些值添加到正确的分组依据中进行求和。但没有真正的方法来对缺少的东西进行分组

另一种方法可能是用适合该变量的一些缺失值单独填充每列。

关于python - Pandas 中按多列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com