从 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中文网其他相关文章!