Groupby allows you to group together rows based off of a column and perform an aggregate function on them.
import pandas as pd
data = {'Company': ["AAA", "AAA", "BBB", "BBB", "CCC", "CCC"],
'Person': ['Sam', 'Charlie', 'Amy', 'Vanessa', 'Carl', 'Sarah'],
'Sales': [200,120,340,124,243,350]}
df = pd.DataFrame(data)
print(df)
print('\n')
print("**** Groupby company ****")
print(df.groupby('Company').sum()) # 求和
print('\n')
print(df.groupby('Company').mean())
print('\n')
print(df.groupby('Company').std())
print('\n')
print("****** 获取某公司一个值 ******")
print(df.groupby('Company').sum().loc['AAA'])
print('\n')
print(df.groupby('Company').sum().loc['BBB'])
print('\n')
print(df.groupby('Company').sum().loc['CCC'])
print('\n')
print("***** 获取至少一个公司的值 *******")
print(df.groupby('Company').sum().loc[['AAA','BBB']])
print('\n')
print("******** 数每家公司的员工数和工资数 *****")
print(df.groupby('Company').count())
print('\n')
print("****** 列举每家公司哪个员工的工资最高 ******")
print(df.groupby('Company').max())
print('\n')
print("****** 列举每家公司哪个员工的工资最少 ******")
print(df.groupby('Company').min())
print('\n')
print("****** 一次性列举每家公司的情况 ******")
print(df.groupby('Company').describe())
print('\n')
print(df.groupby('Company').describe().transpose()) #不同风格显示
print("****** 只是列举某一个公司的所有情况 ******")
print(df.groupby('Company').describe().transpose()['AAA'])
print(df.groupby('Company').describe().transpose()[['AAA','BBB']])
结果如下:
如果觉得不错,就点赞或者关注或者留言~~
谢谢~ ~