pandas - 展平并重命名多索引聚合列

标签 pandas

我有一些 Pandas /cudf使用两种聚合方法聚合特定列的代码,然后将多索引列重命名为扁平列。

df = (
    some_df
    .groupby(["some_dimension"])
    .agg({"some_metric" : ["sum", "max"]})
    .reset_index()
    .rename(columns={"some_dimension" : "some_dimension__id", ("some_metric", "sum") : "some_metric_sum", ("some_metric", "max") : "some_metric_max"})
)

这在 cudf 中效果很好,但在 Pandas 0.25 中不起作用——层次结构没有展平。

是否有使用 Pandas 的类似方法?我喜欢 cudf 元组语法以及它们如何隐式展平列。希望在 Pandas 中找到一种类似简单的方法来做到这一点。

谢谢。

最佳答案

在 pandas 0.25.0+ 中,有一个叫做 groupby aggregation with relabeling 的东西。

这是您的代码

df = (some_df
      .groupby(["some_dimension"])
      .agg(some_metric_sum=("some_metric", "sum"),
           some_metric_max=("some_metric", "max"]})
      .reset_index()
      .rename(colunms = {"some_dimension":"some_dimension_id"}))

关于pandas - 展平并重命名多索引聚合列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61739817/

相关文章:

python - 遍历 numpy 数组的最快方法是什么

python - to_datetime Value Error : at least that [year, month, day] 必须指定 Pandas

python - 在 pandas hist 上标记特定坐标

python - 使用 langdetect 计算 pandas 数据框中的语言频率

python - Pandas:过滤在几个特定列中的任何一个中具有 Null/None/NaN 值的行

python - 使用 NumPy 将用户/项目评分转换为二维数组

python-3.x - 如何建立一个包含同一组中每个国家/地区的值(value)观的字典

python - 两个数组的高效匹配(KDTree的使用方法)

python - 将函数应用于 pandas 中的分组数据计数

python - 在 Pandas 中合并两行(一个有值,另一个为 NaN)