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