数据导入与预处理-第6章-04pandas综合案例(下)

简介: 数据导入与预处理-第6章-04pandas综合案例1 pandas综合案例-运动员信息数据1.1 查看数据1.2 数据处理与分析

采用前向填充的方式,替换体重为 8 的值

# 采用前向填充的方式,替换体重为 8 的值
female_data['体重'].replace(to_replace='8kg', method='pad',inplace=True)
female_data

输出为:


计算女篮球运动员的平均体重

# 计算女篮球运动员的平均体重
female_weight = female_data['体重'].dropna()
female_weight = female_weight.apply(lambda x :x[0:-2]).astype(int)
fill_female_weight = round(female_weight.mean())
fill_female_weight = str(int(fill_female_weight)) + 'kg'
# 填充缺失值
female_data.loc[:,'体重'].fillna(fill_female_weight, inplace=True)
female_data

输出为:

查看男和女蓝球运动员的数据

#  查看男和女蓝球运动员的数据
basketball_data = pd.concat([male_data, female_data])
basketball_data['体重'] = basketball_data['体重'].apply(lambda x : x[0:-2]).astype(int)
basketball_data.rename(columns={'体重':'体重/kg'}, inplace=True)
basketball_data.head(5)

输出为:


设置中文显示 使用箱形图检测男篮运动员身高一列是否有异常值

from matplotlib import pyplot as plt
# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
# 使用箱形图检测男篮运动员身高一列是否有异常值
male_data.boxplot(column=['身高/cm'])
plt.show()

输出为:


使用箱形图检测女篮运动员身高一列是否有异常值

# 使用箱形图检测女篮运动员身高一列是否有异常值
female_data.boxplot(column=['身高/cm'])
plt.show()

输出为:


定义3σ原则检测函数

# 定义基于3σ原则检测的函数
def three_sigma(ser): 
    # 计算平均数
    mean_data = ser.mean()
    # 计算标准差
    std_data = ser.std()
    # 根据数值小于μ-3σ或大于μ+3σ均为异常值
    rule = (mean_data-3*std_data>ser) | (mean_data+3*std_data<ser)
    # 返回异常值的位置索引
    index = np.arange(ser.shape[0])[rule]
    # 获取异常值数据
    outliers = ser.iloc[index]
    return outliers
# 使用3σ原则检测女篮运动员的体重数据
female_weight = basketball_data[basketball_data['性别'] == '女']
three_sigma(female_weight['体重/kg'])

输出为:


使用3σ原则检测男篮运动员的体重数据

# 使用3σ原则检测男篮运动员的体重数据
male_weight = basketball_data[basketball_data['性别'] == '男']
three_sigma(male_weight['体重/kg'])

输出为:


以性别分组,对各分组执行求平均数操作,并要求平均数保留一位小数

# 以性别分组,对各分组执行求平均数操作,并要求平均数保留一位小数
basketball_data.groupby('性别').mean().round(1)

输出为:


根据计算的年龄值绘制直方图

import matplotlib.pyplot as plt
# 设置图表中文字的字体为黑体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 根据出生日期计算年龄
ages = 2020 - basketball_data['出生日期'].apply(lambda x : x[0:-1]).astype(int)
# 根据计算的年龄值绘制直方图
ax = ages.plot(kind='hist')
# 设置直方图中x轴、y轴的标签为“年龄(岁)”和“频数”
ax.set_xlabel('年龄(岁)')
ax.set_ylabel('频数')
# 设置x轴的刻度为“ages的最小值, ages的最小值+2, ..., ages最大值+1”
ax.set_xticks(range(ages.min(),ages.max()+1, 2))
plt.show()

输出为:


增加“体质指数”一列

# 增加“体质指数”一列
basketball_data['体质指数'] = 0
basketball_data.head(5)

输出为:

计算体质指数

# 计算体质指数
def outer(num):
    def ath_bmi(sum_bmi):
        weight = basketball_data['体重/kg']
        height = basketball_data['身高/cm'] 
        sum_bmi =  weight / (height/100)**2
        return num + sum_bmi
    return ath_bmi
basketball_data['体质指数'] = basketball_data[['体质指数']].apply(outer(basketball_data['体质指数'])).round(1)
basketball_data

输出为:


统计体质指数为非正常的女篮运动员的数量

groupby_obj = basketball_data.groupby(by="性别")
females = dict([x for x in groupby_obj])['女']['体质指数'].values
# 统计体质指数为非正常的女篮运动员的数量
count = females[females < 19].size + females[females > 24].size
print(f'体质指数小于19:{females[females < 19]}')
print(f'体质指数大于24:{females[females > 24]}')
print(f'非正常体质范围的总人数:{count}')

输出为:


统计体质指数为非正常的男篮运动员的数量

males = dict([x for x in groupby_obj])['男']['体质指数'].values
# 统计体质指数为非正常的男篮运动员的数量
count = males[males < 20].size + males[males > 25].size
print(f'体质指数小于20:{males[males < 20]}')
print(f'体质指数大于25:{males[males > 25]}')
print(f'非正常体质范围的总人数:{count}')

输出为:


相关文章
|
4月前
|
存储 数据采集 数据处理
深入探索Pandas的DataFrame:基本用法与案例研究
深入探索Pandas的DataFrame:基本用法与案例研究
|
11天前
|
JSON 数据挖掘 API
案例 | 用pdpipe搭建pandas数据分析流水线
案例 | 用pdpipe搭建pandas数据分析流水线
|
2月前
|
存储 消息中间件 数据挖掘
Python实时数据分析:利用丰富的库(如Pandas, PySpark, Kafka)进行流处理,涵盖数据获取、预处理、处理、存储及展示。
【7月更文挑战第5天】Python实时数据分析:利用丰富的库(如Pandas, PySpark, Kafka)进行流处理,涵盖数据获取、预处理、处理、存储及展示。示例代码展示了从Kafka消费数据,计算社交媒体活跃度和物联网设备状态,并可视化结果。适用于监控、故障检测等场景。通过学习和实践,提升实时数据分析能力。
66 0
|
4月前
|
数据可视化 数据挖掘 C++
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
数据分析综合案例讲解,一文搞懂Numpy,pandas,matplotlib,seaborn技巧方法
|
4月前
|
数据采集 数据挖掘 数据处理
《Pandas 简易速速上手小册》第2章:Pandas 数据导入与导出(2024 最新版)
《Pandas 简易速速上手小册》第2章:Pandas 数据导入与导出(2024 最新版)
82 1
|
4月前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
4月前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
4月前
|
索引 Python
肝了3天,整理了90个Pandas案例,强烈建议收藏!
肝了3天,整理了90个Pandas案例,强烈建议收藏!
|
10月前
|
Python
Pandas在数据分析中的应用案例
Pandas在数据分析中的应用案例
111 0
|
数据采集 机器学习/深度学习 数据挖掘
使用Python进行数据清洗与预处理:Pandas和NumPy的应用
在数据分析和机器学习的过程中,数据清洗和预处理是非常重要的一步。Python提供了许多强大的库来帮助我们有效地进行数据清洗和预处理。本文将重点介绍两个常用的库:Pandas和NumPy。我们将使用一个实际的数据集来演示如何使用这两个库进行数据清洗和预处理,并展示其在数据分析中的应用。
339 0
下一篇
DDNS