python - *不*重置 pandas 中的 groupby 索引的用例有哪些

标签 python pandas

在 pandas DataFrame 实例上使用 groupby 时,我从未使用过 as_index=Falsereset_index()。我实际上想不出有什么理由我不会这样做。因为我的行为不是 pandas 默认行为(事实上,因为 groupby 索引根本存在),所以我怀疑 pandas 的某些功能我没有利用。

任何人都可以描述不重置索引会有利的情况吗?

最佳答案

当您执行groupby/agg操作时,很自然地将结果视为从groupby键到聚合标量值的映射。如果我们使用普通的 Python,字典将是保存从键到值的映射的自然数据结构。由于我们使用 Pandas,Series 是自然的数据结构。它的索引将保存键,系列值将是聚合标量。如果每个键有多个聚合值,那么要使用的自然数据结构将是 DataFrame。

将键保存在索引而不是列中的优点是,根据索引标签查找值的操作时间复杂度为 O(1),而根据列中的值查找值的操作时间复杂度为 O(n)手术。

由于 groupby/agg 操作的结果自然适合以 groupby 键作为索引的 Series 或 DataFrame,并且由于索引具有这种特殊的快速查找属性,因此最好返回结果默认采用这种形式。

关于python - *不*重置 pandas 中的 groupby 索引的用例有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44937573/

相关文章:

Python3 无法访问 python2 模块 (ubuntu)

python - 更新 html 中的文本

python - 根据列名对 Pandas 中的多个列进行不同的聚合

python - Pandas - 按组比较当前年份与所有以前年份的值,如果它是累积最小值,则返回 True

python - 将 <m8[ns] 转换为整数

python - Pandas 爆炸并删除多列的重复项

python - 检查两个字符串是否包含相同的字符,不考虑它们的频率

python - factory-boy 子工厂传递对象而不是键

python - 在 Python 中加速矩阵 vector 乘法和求幂,可能通过调用 C/C++

python - 如何将一行从一个 pandas 数据框复制到另一个 pandas 数据框?