首页  >  文章  >  后端开发  >  如何将 Pandas GroupBy 多索引系列输出转换回 DataFrame?

如何将 Pandas GroupBy 多索引系列输出转换回 DataFrame?

Patricia Arquette
Patricia Arquette原创
2024-11-24 08:50:14209浏览

How to Convert a Pandas GroupBy Multi-Index Series Output Back into a DataFrame?

从 Pandas GroupBy MultiIndex 系列输出中检索行

给定一个具有多索引的 DataFrame,您可以执行 GroupBy 操作来计数或汇总值。但是,生成的输出是具有分层索引的系列,因此很难查看原始行。本文介绍如何将此输出转换回包含原始行的 DataFrame。

问题:

如何转换 Pandas GroupBy 多索引 Series 输出,如:

                  City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1

进入另一个保留所有原始数据的DataFrame rows?

答案:

将 Series 转换回 DataFrame 的关键是处理分层索引。这里有两种方法:

1。使用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

2.使用 DataFrame 和 reset_index

DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()

此方法根据分组大小创建一个新的 DataFrame,并重置分层索引以获得平面 DataFrame。

输出:

      Name      City  count
0    Alice   Seattle      1
1      Bob   Seattle      2
2  Mallory  Portland      2
3  Mallory   Seattle      1

这些方法允许您从 GroupBy 多索引系列中提取行输出并重建包含所有原始数据的 DataFrame。

以上是如何将 Pandas GroupBy 多索引系列输出转换回 DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn