pandas数据分组

Pandas提供了多种数据分组方法,可以根据不同的需求进行分组。以下是一些常见的数据分组方法:

1. 使用groupby函数进行基本分组:

groupby函数是Pandas中最常用的分组方法之一,可以根据指定的列进行分组,并返回一个分组对象。例如,将DataFrame按照’A’列进行分组:

import pandas as pd

# 创建一个DataFrame
data = {'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
        'B': [1, 2, 3, 4, 5, 6],
        'C': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# 使用groupby函数按照'A'列进行分组
grouped = df.groupby('A')

2. 使用agg函数对分组进行聚合操作:

agg函数是Pandas中用于对分组进行聚合操作的函数之一,可以对分组进行各种统计操作,例如求和、平均值、最大值、最小值等。例如,对按照’A’列分组的DataFrame进行聚合操作:

import pandas as pd

# 创建一个DataFrame
data = {'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
        'B': [1, 2, 3, 4, 5, 6],
        'C': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# 使用groupby函数按照'A'列进行分组
grouped = df.groupby('A')

# 使用agg函数对分组进行聚合操作
result = grouped.agg({'B': 'sum', 'C': 'mean'})
print(result)

# 输出
#        B   C
# A                  
# bar  7   30.0
# baz  9   45.0
# foo  5   25.0

3. 使用transform函数对分组进行转换操作:

transform函数是Pandas中用于对分组进行转换操作的函数之一,可以对分组进行各种转换操作,例如标准化、缩放等。例如,对按照’A’列分组的DataFrame进行标准化操作:

import pandas as pd

# 创建一个DataFrame
data = {'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
        'B': [1, 2, 3, 4, 5, 6],
        'C': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# 使用groupby函数按照'A'列进行分组
grouped = df.groupby('A')

# 使用transform函数对分组进行标准化操作
result = grouped.transform(lambda x: (x - x.mean()) / x.std())
print(result)

# 输出
#        B         C
# 0 -1.000000 -1.000000
# 1  0.408248  1.000000
# 2  1.216497  0.000000
# 3 -1.000000 -1.000000
# 4  0.408248 -1.000000
# 5  1.216497 -1.000000

4. 使用filter函数对分组进行筛选操作:

filter函数是Pandas中用于对分组进行筛选操作的函数之一,可以根据指定的条件对分组进行筛选。例如,筛选出按照’A’列分组的DataFrame中’B’列的平均值大于等于3的分组:

import pandas as pd

# 创建一个DataFrame
data = {'A': ['foo', 'bar', 'baz', 'foo', 'bar', 'baz'],
        'B': [1, 2, 3, 4, 5, 6],
        'C': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# 使用groupby函数按照'A'列进行分组
grouped = df.groupby('A')

# 使用filter函数对分组进行筛选操作
result = grouped.filter(lambda x: x['B'].mean() >= 3)
print(result)

# 输出
#       A  B   C
# 2   baz  3  30
# 4   bar  5  50
# 5   baz  6  60

 

以上是Pandas中常见的数据分组方法,可以根据实际需求选择合适的方法。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片