pandas数据的分组和聚合

import pandas as pd

# 分组
# 对数据进行分组,对每一组的数据进行计算
# SQL是可以对数据进行分组和过滤的
# Pandas可以通过groupby函数对数据进行更加复杂的分组运算
# 分组运算的过程
# 1.分组 根据某些要求分组
# 2.运算 根据不同的分组数据进行不同的运算
# 3.合并 把每一个分组的运算结果合并在一起

dict_data = {

    'key1':['a','b','c','d','a','b','c','d'],
    'key2':['one','two','three','four','five','six','seven','eight'],
    'data1':[1,2,3,4,5,6,7,8],
    'data2':[3,4,6,9,8,6,5,4]

}

# 根据字典创建df对象
df = pd.DataFrame(dict_data)

print(df)

# 按照指定列进行分组
# DataFrameGroupBy  类型的对象,存储分组之后的数据

print(df.groupby('key1'))
print(df.groupby('key1').sum())
print(type(df.groupby('key1').sum()))

# 把某列数据按照另外一列进行分组
# 1.找到要分组的列

print(df['data1'])

# 根据key1这一列进行分组

print(df['data1'].groupby(df['key1']).sum())

group1 = df.groupby('key1')
# size() 查看分组数据个数
print(group1.size())

group2 = df.groupby('key2')
print(group2.size())

# 按照层级索引来分
group1 = df.groupby(['key1','key2'])
print(group1.size())

group2 = df.groupby(['key2','key1'])
print(group2.size())

# groupby对象支持迭代操作
# for循环遍历,遍历出来的是一个元组,元组中存放的是分组名称和分组数据
# 对分组数据进行运算
gtoup2 = df.groupby('key1')
for group_name,group_data in group2:
    print(group_name)
    print(group_data)
    print(type(group_data))

    print('*'*50)

group_list = list(group2)
print(group_list)

# 转换为字典
dict(list(group2))

# 按照数据类型来分

print(df.groupby(df.dtypes,axis=1).size())

print(df.groupby(df.dtypes,axis=1).sum())

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章