使用python分享一下数据分组以及数据聚合运算

今天分享一波python技术分析数据分组,数据分组有四种方法

方法目录

  1. by = ‘参数’

  2. 字典
  3. 以Seri分列
  4. 以函数进行分割

首先我们导入数据

athlete_data = pd.read_csv("运动员信息表.csv", encoding='GBk')
print(athlete_data)

我们一个一个方法的来实现分组

1.by = ‘参数’

group_by_events = athlete_data.groupby(by='项目')
# print(group_by_events)
for data in group_by_events:
    print(data)

2.字典

mapping = {  # 字典的key要对应文件的列名
    '姓名': '1',
    '性别': '1',
    '出生年份(年)': '1',
    '身高(cm)': '2',
    '体重(kg)': '3',
    '项目': '4',
}
group_by_map = athlete_data.groupby(mapping, axis=1)
for data in group_by_map:
    print(data)

代码运行结果

3.以Seri分列

listl = []
for i in range(0, 179):
    listl.append(random.randint(1, 5))
se = pd.Series(listl)  # 相当于是csv的一列
print(se)
group_by_se = athlete_data.groupby(by=se)
for data in group_by_se:
    print(data)
4.以函数进行分割
print(athlete_data.index)

def group(x):
    if x % 2 == 0:
        return "偶数"
    else:
        return "奇数"


group_by_fun = athlete_data.groupby(group)
for i in group_by_fun:
    print(data)

athlete_data = pd.read_csv("运动员信息表.csv", encoding='GBK', index_col=3)
#
def age_group(age):

    # 设置年龄区间
    if 20<age<40:
        return '青年'
    elif 40<age<=55:
        return '中年'
    elif age>55:
        return '老年'
    else:
        return 'error'

group_by_fun_age = athlete_data.groupby(age_group)
for data in group_by_fun_age:
    print(data)

print(athlete_data)

通过对上述四种方法,可以选有一种符合现状的方法来分组。同时,经过分析也得出,青年大部分的项目都是,篮球,羽毛球男子现代五项,女子现代五项,铁人三项,而中年就是射击这类需要靠经验来比赛的项目。

总结

一个Python数据分组案例,主要对运动员数据进行分析,案例相关代码、Excel表、json文件等上传在我的csdn下载区中。

小郭锅在此希望对你的编程之旅有所帮助

猜你喜欢

转载自blog.csdn.net/G6_12/article/details/115874469
今日推荐