首页 > 后端开发 > Python教程 > 如何展平 Pandas GroupBy MultiIndex DataFrame?

如何展平 Pandas GroupBy MultiIndex DataFrame?

Mary-Kate Olsen
发布: 2024-12-02 00:01:09
原创
332 人浏览过

How to Flatten a Pandas GroupBy MultiIndex DataFrame?

将 Pandas GroupBy MultiIndex 输出转换回 DataFrame

在具有多个索引列的 pandas DataFrame 上执行 groupby 操作时,生成的结果object 是一个具有分层索引的 DataFrame。如果您想将数据作为单独的行进行访问,这可能会很不方便。

这是一个简单的示例:

df1 = pd.DataFrame({"City": ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"], "Name": ["Alice", "Bob", "Mallory", "Mallory", "Bob", "Mallory"]})

g1 = df1.groupby(["Name", "City"]).count()
登录后复制

g1 的输出是具有分层索引的 DataFrame:

                  City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1
登录后复制

要将其转换回具有单独行的 DataFrame,您可以使用 add_suffix 和 reset_index方法:

g1.add_suffix("_Count").reset_index()
登录后复制

这将为索引列添加后缀并重置索引以创建平面DataFrame:

      Name      City  City_Count  Name_Count
0    Alice   Seattle           1           1
1      Bob   Seattle           2           2
2  Mallory  Portland           2           2
3  Mallory   Seattle           1           1
登录后复制

或者,您可以使用size方法和reset_index来计算每个组中的行数并创建一个新的 DataFrame:

DataFrame({'count': df1.groupby(["Name", "City"]).size()}).reset_index()
登录后复制

这将创建一个具有单个索引的 DataFrame专栏:

      Name      City  count
0    Alice   Seattle      1
1      Bob   Seattle      2
2  Mallory  Portland      2
3  Mallory   Seattle      1
登录后复制

您使用哪种方法取决于您的具体需求。

以上是如何展平 Pandas GroupBy MultiIndex DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板