使用 Pandas 对数据进行分组和展开是数据分析中常见的操作之一。在 Pandas 中,我们可以使用 `groupby` 方法对数据进行分组,然后使用 `apply` 方法对每个分组进行操作。在本文中,我们将介绍如何按照两列进行分组,并展开第三列的数据。
首先,让我们来看一个简单的示例。假设我们有一个包含三列数据的数据集,分别是姓名、性别和年龄。我们想要按照姓名和性别进行分组,并展开年龄数据。下面是一个示例数据集:import pandas as pddata = { '姓名': ['张三', '李四', '王五', '张三', '李四', '王五'], '性别': ['男', '男', '女', '男', '女', '女'], '年龄': [20, 25, 30, 35, 40, 45]}df = pd.DataFrame(data)
在上面的代码中,我们首先导入了 Pandas 库,然后创建了一个包含姓名、性别和年龄数据的字典。接下来,我们使用 `pd.DataFrame` 方法将字典转换为数据框,并赋值给变量 `df`。现在,我们可以按照姓名和性别进行分组,并展开年龄数据。代码如下:grouped = df.groupby(['姓名', '性别'])['年龄'].apply(list).reset_index()
在上面的代码中,我们使用 `groupby` 方法对姓名和性别进行分组,并使用 `apply` 方法将每个分组的年龄数据转换为列表。然后,我们使用 `reset_index` 方法将分组的结果重新设置索引。接下来,让我们来看一下分组展开后的结果:print(grouped)
输出结果如下: 姓名 性别 年龄0 张三 男 [20, 35]1 李四 男 [25, 40]2 王五 女 [30, 45]
可以看到,结果中的姓名和性别列是按照分组进行展开的,而年龄列则是以列表的形式展示每个分组的年龄数据。在上面的示例中,我们按照两列进行了分组,并展开了第三列的数据。这个方法在实际的数据分析中非常有用,可以帮助我们更好地理解和分析数据。示例代码:pythonimport pandas as pddata = { '姓名': ['张三', '李四', '王五', '张三', '李四', '王五'], '性别': ['男', '男', '女', '男', '女', '女'], '年龄': [20, 25, 30, 35, 40, 45]}df = pd.DataFrame(data)grouped = df.groupby(['姓名', '性别'])['年龄'].apply(list).reset_index()print(grouped)
运行结果: 姓名 性别 年龄0 张三 男 [20, 35]1 李四 男 [25, 40]2 王五 女 [30, 45]
:本文介绍了如何使用 Pandas 对数据进行分组和展开。首先,我们使用 `groupby` 方法对数据进行分组,然后使用 `apply` 方法对每个分组进行操作。通过这种方法,我们可以按照两列进行分组,并展开第三列的数据。这对于数据分析和处理来说是一种非常有用的技巧。参考链接:- [Pandas 中文文档](https://www.pypandas.cn/docs/)