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())

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