Pandas 如何对DataFrame进行分组并得到求和与计数 |
您所在的位置:网站首页 › 对列表中多个项目求和 › Pandas 如何对DataFrame进行分组并得到求和与计数 |
Pandas 如何对DataFrame进行分组并得到求和与计数
在本文中,我们将介绍如何通过Pandas对DataFrame数据进行分组并得到求和与计数。这是我们在数据分析和数据处理中经常使用的一种操作。 阅读更多:Pandas 教程 1. 分组与聚合在进行数据分析时,我们经常需要根据某些特征将数据进行分组,然后对每个组的数据进行聚合计算。在 Pandas 中,我们可以使用 groupby() 方法来实现这个功能。 下面是一个示例数据集: Name Age Gender Score Tom 25 M 70 Dan 30 M 80 Jerry 27 F 90 Tim 22 F 85 Lucy 29 F 75如果我们想要按照 Gender 进行分组并得到每个组的平均分数和总分数,可以使用以下代码: import pandas as pd # 读取示例数据 df = pd.read_csv('example.csv') # 按照 Gender 进行分组,并计算每个组的平均分数和总分数 result = df.groupby('Gender')['Score'].agg(['mean', 'sum']) print(result)输出结果如下: mean sum Gender F 83.333333 250 M 75.000000 150 2. 对多个列进行分组与聚合除了按照单个列进行分组之外,还可以按照多个列进行分组。例如,我们想要按照 Gender 和 Age 两个列进行分组并得到每个组的平均分数,可以使用以下代码: import pandas as pd # 读取示例数据 df = pd.read_csv('example.csv') # 按照 Gender 和 Age 两个列进行分组,并计算每个组的平均分数 result = df.groupby(['Gender', 'Age'])['Score'].mean() print(result)输出结果如下: Gender Age F 22 85.0 27 90.0 29 75.0 M 25 70.0 30 80.0 Name: Score, dtype: float64 3. 分组计数除了对分组数据进行求和和平均值计算之外,我们也可以对分组后的数据进行计数。例如,我们想要按照 Gender 和 Age 两个列进行分组并得到每个组的计数,可以使用以下代码: import pandas as pd # 读取示例数据 df = pd.read_csv('example.csv') # 按照 Gender 和 Age 两个列进行分组,并计算每个组的计数 result = df.groupby(['Gender', 'Age'])['Name'].count() print(result)输出结果如下: Gender Age F 22 1 27 1 29 1 M 25 1 30 1 Name: Name, dtype: int64 4. 分组与排序在某些情况下,我们需要对分组后的数据进行排序。例如,我们想要按照每个组的平均分数进行降序排序,可以使用以下代码: import pandas as pd # 读取示例数据 df = pd.read_csv('example.csv') # 按照 Gender 进行分组,并计算每个组的平均分数和总分数 result = df.groupby('Gender')['Score'].agg(['mean', 'sum']).sort_values('mean', ascending=False) print(result)输出结果如下: mean sum Gender F 83.333333 250 M 75.000000150 5. 分组后作为新的DataFrame如果我们想要将分组后的结果作为新的 DataFrame 进行处理,可以使用 reset_index() 方法将分组后的结果重新变成 DataFrame。例如,我们想要按照每个 Gender 和 Age 的组合计算每个组的平均分数和计数,并将结果作为新的 DataFrame 进行处理,可以使用以下代码: import pandas as pd # 读取示例数据 df = pd.read_csv('example.csv') # 按照 Gender 和 Age 两个列进行分组,并计算每个组的平均分数和计数 result = df.groupby(['Gender', 'Age']).agg({'Score': ['mean'], 'Name': ['count']}).reset_index() # 将分组后的列名进行更改 result.columns = ['Gender', 'Age', 'Mean Score', 'Count'] print(result)输出结果如下: Gender Age Mean Score Count 0 F 22 85.0 1 1 F 27 90.0 1 2 F 29 75.0 1 3 M 25 70.0 1 4 M 30 80.0 1 总结在本文中,我们介绍了 Pandas 中对 DataFrame 进行分组与聚合计算的方法。除了对单个列进行分组之外,我们还可以对多个列进行分组,并对分组后的数据进行排序和计数操作。此外,我们还介绍了如何将分组后的结果作为新的 DataFrame 进行处理。这些方法在数据分析和数据处理中应用广泛,希望本文对您有所帮助。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |