今天分享一波python技术分析数据分组,数据分组有四种方法
方法目录
-
by = ‘参数’
- 字典
- 以Seri分列
以函数进行分割
首先我们导入数据
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下载区中。
小郭锅在此希望对你的编程之旅有所帮助