首页  >  文章  >  后端开发  >  如何将 Pandas GroupBy MultiIndex 输出从系列转换为 DataFrame?

如何将 Pandas GroupBy MultiIndex 输出从系列转换为 DataFrame?

Linda Hamilton
Linda Hamilton原创
2024-11-22 22:35:20114浏览

How to Convert a Pandas GroupBy MultiIndex Output from Series to DataFrame?

将 Pandas GroupBy MultiIndex 输出从 Series 转换为 DataFrame

考虑以下 DataFrame:

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

使用 groupby( 执行分组操作后),输出是一个层次索引DataFrame,如图下面:

g1 = df1.groupby(['Name', 'City']).count()

print(g1)
                   City  Name
Name    City
Alice   Seattle      1     1
Bob     Seattle      2     2
Mallory Portland     2     2
        Seattle      1     1

要检索所需的 DataFrame 结构,有多种方法。

添加后缀并重置索引

这涉及向列添加后缀名称并重置层次索引:

g1.add_suffix('_Count').reset_index()

print(
    pd.DataFrame({'City_Count': g1['City'],
                  'Name_Count': g1['Name']
                  })
)
          City_Count  Name_Count
Alice   Seattle      1           1
       Portland     2           2
Bob     Seattle      2           2
Mallory Portland     2           2
        Seattle      1           1

使用 size()方法

另一种方法是使用 size() 方法来计算每个组的出现次数并重置索引:

df1.groupby(['Name', 'City']).size().reset_index()

print(
    pd.DataFrame({'Name': g1.index.get_level_values(0),
                  'City': g1.index.get_level_values(1),
                  'Count': g1['City']
                  })
)
      Name      City  Count
0     Alice   Seattle      1
1       Bob   Seattle      2
2   Mallory  Portland      2
3   Mallory   Seattle      1

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

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