Pandas 按索引和列分组

Pandas 按索引和列分组

在本文中,我们将介绍Pandas中的按索引和列分组。分组是数据分析中常用的技术。Pandas中的分组操作非常强大,可以按照索引和列进行分组,并支持多级分组。

阅读更多:Pandas 教程

按索引分组

按索引分组是指按照DataFrame或Series的索引进行分组。下面是一个示例。首先,创建一个包含三列的DataFrame。其中,索引为A、B、C、D四个字母,列名为x、y、z。

import pandas as pd

df = pd.DataFrame({
    'x': [1, 2, 3, 4],
    'y': [5, 6, 7, 8],
    'z': [9, 10, 11, 12]
}, index=['A', 'B', 'C', 'D'])

接着,按照索引进行分组,计算每组的平均值。

grouped = df.groupby(level=0).mean()
print(grouped)

输出结果为:

     x    y    z
A  1.0  5.0  9.0
B  2.0  6.0  10.0
C  3.0  7.0  11.0
D  4.0  8.0  12.0

按列分组

按列分组是指按照DataFrame的列进行分组。下面是一个示例。创建一个包含三列的DataFrame。其中,列名为A、B、C,索引为1到4。

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
}, index=[1, 2, 3, 4])

接着,按照列B进行分组,计算每组的平均值。

grouped = df.groupby('B').mean()
print(grouped)

输出结果为:

   A   C
B       
5  1   9
6  2  10
7  3  11
8  4  12

按索引和列分组

按索引和列分组是指按照DataFrame的索引和列进行分组。下面是一个示例。创建一个包含三列的DataFrame。其中,列名为A、B、C,索引为1到4。

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 5, 6, 6],
    'C': [1, 2, 3, 4]
}, index=[1, 2, 3, 4])

接着,按照索引和列B进行分组,计算每组的平均值。

grouped = df.groupby([df.index, 'B']).mean()
print(grouped)

输出结果为:

     A    C
1 5  1.0  1.0
2 5  2.0  2.0
3 6  3.0  3.0
4 6  4.0  4.0

多级分组

多级分组是指按照多个条件进行分组。下面是一个示例。创建一个包含四列的DataFrame。其中,列名为A、B、C、D,索引为1到4。按照列A、B进行分组,计算每组的平均值。

import pandas as pd

df = pd.DataFrame({
    'A': [1, 1, 2, 2],
    'B': [3, 3, 4, 4],
    'C': [5, 6, 7, 8],
    'D': [9, 10, 11, 12]
}, index=[1, 2, 3, 4])

grouped = df.groupby(['A', 'B']).mean()
print(grouped)

输出结果为:

     C     D
A B        
1 3  5.5   9.5
2 4  7.5  11.5

总结

Pandas中的分组操作非常强大,支持按索引、列、索引和列进行分组,并支持多级分组。掌握分组操作可以方便我们进行数据分析和处理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程