迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Pandas 的列中展平层次索引

作者:迹忆客 最近更新:2024/04/24 浏览次数:

本文将讨论如何在 Pandas Dataframe 列中展平分层索引。

Groupby 聚合函数通常用于创建分层索引。使用的聚合函数将在结果 DataFrame 的分层索引中可见。

我们将使用不同的函数来解释如何在列中展平层次索引。


使用 rest_index() 在 Pandas 的列中展平层次索引

Pandas 中的 reset_index() 函数将 groupby 聚合函数创建的分层索引展平。

语法:

pandas.DataFrame.reset_index(level, drop, inplace)

其中,

  • level:仅从索引中删除指示的级别。
  • drop:索引重置为默认整数索引。
  • inplace:不复制,永久修改 DataFrame 对象。

我们使用 Pandas groupby() 函数按季度对巴士销售数据进行分组,并使用 reset_index() pandas 函数来展平分组 DataFrame 的分层索引列。

首先,导入 Python Pandas 库,然后创建一个简单的 DataFrame。DataFrame 存储在 data_bus 变量中。

import pandas as pd

data_bus = pd.DataFrame(
    {
        "bus": ["2x", "3Tr", "4x", "5x"],
        "bus_sale_q1": [21, 23, 25, 27],
        "bus_sale_q2": [12, 14, 16, 18],
    },
    columns=["bus", "bus_sale_q1", "bus_sale_q2"],
)
print(data_bus)

输出:

     bus    bus_sale_q1    bus_sale_q2
0    2x     21             12
1    3Tr    23             14
2    4x     25             16
3    5x     27             18

上面的输出显示了创建的简单 DataFrame。之后,使用 groupby() 函数根据销售额 q1 和 q2 的总和对总线列进行分组。

grouped_data = data_bus.groupby(by="bus").agg("sum")
grouped_data

输出:

bus    bus_sale_q1    bus_sale_q2
2x     21             12
3Tr    23             14
4x     25             16
5x     27             18

我们将使用 reset_index() 函数来展平分层索引列。

flat_data = grouped_data.reset_index()
flat_data

输出:

     bus    bus_sale_q1    bus_sale_q2
0    2x     21             12
1    3Tr    23             14
2    4x     25             16
3    5x     27             18

使用 as_index 在 Pandas 的列中展平层次索引

pandas groupby() 函数将用于按季度对巴士销售数据进行分组,而 as_index 将展平分组 DataFrame 的分层索引列。

语法:

pandas.DataFrame.groupby(by, level, axis, as_index)

其中,

  • level:必须对其执行 groupby 操作的列。
  • by:必须对其执行 groupby 操作的列。
  • axis:是否沿行 (0) 或列 (1) 拆分。
  • as_index:对于聚合输出,返回带有索引组标签的对象。

我们将使用 Pandas groupby() 函数按季度对巴士销售数据进行分组,并将 as_index 参数设置为 False。这确保了分组 DataFrame 的分层索引是扁平的。

将使用与上一个示例相同的 DataFrame。

例子:

import pandas as pd

data_bus = pd.DataFrame(
    {
        "bus": ["2x", "3Tr", "4x", "5x"],
        "bus_sale_q1": [21, 23, 25, 27],
        "bus_sale_q2": [12, 14, 16, 18],
    },
    columns=["bus", "bus_sale_q1", "bus_sale_q2"],
)
data_bus
grouped_data = data_bus.groupby(by="bus", as_index=False).agg("sum")
print(grouped_data)

输出:

     bus    bus_sale_q1    bus_sale_q2
0    2x     21             12
1    3Tr    23             14
2    4x     25             16
3    5x     27             18

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:181 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:70 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:190 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:140 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便