Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训)

这篇具有很好参考价值的文章主要介绍了Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表1-1healthcare-dataset-stroke.xlsx 部分中风患者的基础信息和体检数据

编号 性别 高血压 是否结婚 工作类型 居住类型 体重指数 吸烟史 中风
9046 私人 城市 36.6 以前吸烟
51676 私营企业 农村 N/A 从不吸烟
31112 私人 农村 32.5 从不吸烟
60182 私人 城市 34.4 抽烟
1665 私营企业 农村 24 从不吸烟
56669 私人 城市 29 以前吸烟
53882 私人 农村 27.4 从不吸烟

表二 healthcare-dataset-age-abs.xlsx 部分中风患者的年龄和平均血糖数据

编号 年龄 平均血糖
9046 67 228.69
51676 61 202.21
31112 80 105.92
60182 49 171.23
1665 79 174.12
56669 81 186.21
53882 74 70.09
10434 69 94.39
27419 59 76.15
60491 78 58.57

实训1 合并年龄、平均血糖和中风患者信息数据

1、训练要点

(1) 掌握判断主键的方法

(2) 掌握主键合并方法

2、需求分析

某医院为了早期监测预警患者的中风风险,对现有中风患者的基础信息和体检数据(healthcare-dataset-stroke.xls)进行分析,观察发现患者基础信息和体检数据中缺少中风患者的年龄和平均血糖的信息。另有年龄和平均血糖数据(healthcare-dataset-age_abs.xls)存放了分析所需的患者的年龄和平均血糖信息。

(1)读取两个数据文件,打印前5行结果进行显示。

# 合并年龄、平均血糖和中风患者数据
import pandas as pd
df1 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-stroke.xlsx')
df2 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

#(1)读取两个数据文件,打印前5行结果进行显示。
print("healthcare-dataset-stroke.xls前5行:")
print(df1.head(5))
print("----------------------------------------")
print("healthcare-dataset-age_abs.xls前5行:")
print(df2.head(5))

Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训),Python,数据挖掘,数据分析

(2)利用concat函数进行纵向堆叠,展示‘内连接‘、‘外连接’的拼接结果(前5行即可)。

# 使用concat函数进行纵向堆叠
import pandas as pd
df1 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-stroke.xlsx')
df2 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

# 外连接
df_concat = pd.concat([df1, df2], axis=0, join='outer')
print("纵向堆叠结果前5行(外连接):")
print(df_concat.head(5))

# 内连接
df_concat = pd.concat([df1, df2], axis=0, join='inner')
print("纵向堆叠结果前5行(内连接):")
print(df_concat.head(5))

Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训),Python,数据挖掘,数据分析

(3)对两个数据利用‘编号’列作为主键进行合并,展示合并结果(前5行即可)

# 使用'编号'列作为主键进行合并
import pandas as pd
df1 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-stroke.xlsx')
df2 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

df_merge = pd.merge(df1, df2, on='编号', how='inner')
print("合并结果前5行:")
print(df_merge.head(5))

Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训),Python,数据挖掘,数据分析

实训2 对表格数据进行数据清洗。

需求说明:

基于1中的数据

(1)对于表格healthcare-dataset-stroke.xls的信息,使用duplicates函数对‘工作类型’、‘吸烟史’两列数据进行特征去重。

# 对于表格healthcare-dataset-stroke.xls的信息,使用duplicates函数对‘工作类型’、‘吸烟史’两列数据进行特征去重
import pandas as pd
# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-stroke.xlsx')
# 对'工作类型'和'吸烟史'列进行去重
df = df.drop_duplicates(subset=['工作类型', '吸烟史'])
# 打印结果
print(df)

(2)对于表格healthcare-dataset-age_abs.xls的信息,对‘年龄’、‘平均血糖’两列数据,使用sum及isnull函数判断及统计缺失值。

# 对于表格healthcare-dataset-age_abs.xls的信息,对‘年龄’、‘平均血糖’两列数据,使用sum及isnull函数判断及统计缺失值。
import pandas as pd

# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')
# 判断是否有缺失值
missing_values = df.isnull()
# 统计缺失值的个数
missing_count = missing_values.sum()
# 打印结果
print("缺失值统计:")
print(missing_count)

(3)对‘年龄’列的数据使用均值替换其缺失值;对‘平均血糖’列数据使用3阶多项式进行插值。

# (3)	对‘年龄’列的数据使用均值替换其缺失值;对‘平均血糖’列数据使用3阶多项式进行插值。
import pandas as pd
import numpy as np

# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

# 计算年龄的均值
mean_age = df['年龄'].mean()

# 使用均值替换年龄列的缺失值
df['年龄'] = df['年龄'].fillna(mean_age)

# 对平均血糖列进行3阶多项式插值
df['平均血糖'] = df['平均血糖'].interpolate(method='polynomial', order=3)

# 打印结果
print(df)

(4)使用3δPython数据分析与应用 |第4章 使用pandas进行数据预处理 (实训),Python,数据挖掘,数据分析原则判断‘年龄’、‘平均血糖’两列数据中是否存在异常值及异常值的个数。

import pandas as pd
import numpy as np

# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

# 计算年龄和平均血糖的均值和标准差
mean_age = df['年龄'].mean()
std_age = df['年龄'].std()
mean_glucose = df['平均血糖'].mean()
std_glucose = df['平均血糖'].std()

# 使用3δ原则判断是否存在异常值
outliers_age = (np.abs(df['年龄'] - mean_age) > 3 * std_age)
outliers_glucose = (np.abs(df['平均血糖'] - mean_glucose) > 3 * std_glucose)

# 统计异常值的个数
num_outliers_age = outliers_age.sum()
num_outliers_glucose = outliers_glucose.sum()

# 打印结果
print("年龄异常值个数:", num_outliers_age)
print("平均血糖异常值个数:", num_outliers_glucose)

实训 3 基于healthcare-dataset-age_abs.xls中的‘平均血糖’列数据,(1)使用离差标准化、标准差标准化、小数定标标准化进行标准化处理。

需求分析:

(1)使用离差标准化 进行标准化处理

import pandas as pd
# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')
# 离差标准化
df['平均血糖_离差标准化'] = (df['平均血糖'] - df['平均血糖'].min()) / (df['平均血糖'].max() - df['平均血糖'].min())
print(df)

(2)使用标准差标准化进行标准化处理

# 标准差标准化
import pandas as pd
# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')
df['平均血糖_标准差标准化'] = (df['平均血糖'] - df['平均血糖'].mean()) / df['平均血糖'].std()
print(df)

(3)使用小数定标标准化进行标准化处理。

import pandas as pd

# 读取数据
df = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

# 使用0填充缺失值
df['平均血糖'] = df['平均血糖'].fillna(0)

# 小数定标标准化
df['平均血糖_小数定标标准化'] = df['平均血糖'] / (10 ** (df['平均血糖'].apply(lambda x: len(str(abs(int(x))))) - 1))

# 打印结果
print(df)

实训4 对表healthcare-dataset-stroke.xls中‘吸烟史’的类别型数据进行哑变量处理,转换为数值型数据。

需求说明:

      (1)对表healthcare-dataset-stroke.xls中‘吸烟史’的类别型数据进行哑变量处理,转换为数值型数据。

import pandas as pd

# 读取数据
df1 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-stroke.xlsx')


# 哑变量处理
df1_dummies = pd.get_dummies(df1['吸烟史'], prefix='吸烟史')

print(df1_dummies)

(2)对表healthcare-dataset-age_abs.xls中‘年龄’数据使用等宽法、等频法进行离散化,划分为5类区间。文章来源地址https://www.toymoban.com/news/detail-856267.html

import pandas as pd
df2 = pd.read_excel('C:/Users/DELL/Python/healthcare-dataset-age-abs.xlsx')

# 等宽法离散化
df2['年龄_等宽法'] = pd.cut(df2['年龄'], bins=5, labels=False)

# 等频法离散化
df2['年龄_等频法'] = pd.qcut(df2['年龄'], q=5, labels=False)

print(df2[['年龄', '年龄_等宽法', '年龄_等频法']])

到了这里,关于Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Pandas进行数据处理和分析的入门指南

    摘要:本文将介绍如何使用Python的Pandas库进行数据处理和分析,包括数据导入、数据清洗、数据转换和简单分析等方面的内容。 在数据科学和数据分析领域,数据处理是一个关键的步骤。Python的Pandas库提供了强大且易于使用的工具,使数据处理变得简单和高效。本文将引导您

    2024年02月10日
    浏览(62)
  • Python数据分析之Pandas核心使用进阶

    在Pandas中,有两种常见的方法可以进行DataFrame的行级遍历:使用 iterrows() 和使用 iteritems() 。 使用 iterrows() 方法: iterrows() 方法返回一个迭代器,可以按行遍历DataFrame。每次迭代返回一个包含行索引和该行数据的元组。 输出结果为: 在上面的例子中,我们使用 iterrows() 方法遍

    2024年02月11日
    浏览(59)
  • 《Python数据分析技术栈》第06章使用 Pandas 准备数据 01 Pandas概览(Pandas at a glance)

    《Python数据分析技术栈》第06章使用 Pandas 准备数据 01 Pandas概览(Pandas at a glance) Wes McKinney developed the Pandas library in 2008. The name (Pandas) comes from the term “Panel Data” used in econometrics for analyzing time-series data. Pandas has many features, listed in the following, that make it a popular tool for data wrang

    2024年01月23日
    浏览(31)
  • 《Python数据分析技术栈》第06章使用 Pandas 准备数据 11 pandas中的运算符 Operators in Pandas

    《Python数据分析技术栈》第06章使用 Pandas 准备数据 11 pandas中的运算符 Operators in Pandas Pandas uses the following operators that can be applied to a whole series. While Python would require a loop to iterate through every element in a list or dictionary, Pandas takes advantage of the feature of vectorization implemented in NumPy that

    2024年01月23日
    浏览(33)
  • Python数据分析:NumPy、Pandas和Matplotlib的使用和实践

    在现代数据分析领域中,Python已成为最受欢迎的编程语言之一。Python通过庞大的社区和出色的库支持,成为了数据科学家和分析师的首选语言。在Python的库中,NumPy、Pandas和Matplotlib是三个最为重要的库,它们分别用于处理数值数组、数据处理和可视化。本文将介绍这三个库的

    2024年02月04日
    浏览(34)
  • 使用Python进行数据分析——方差分析

    大家好,方差分析可以用来判断几组观察到的数据或者处理的结果是否存在显著差异。本文介绍的方差分析(Analysis of Variance,简称ANOVA)就是用于检验两组或者两组以上样本的均值是否具备显著性差异的一种数理统计方法。 根据影响试验条件的因素个数可以将方差分析分为

    2024年02月15日
    浏览(46)
  • 使用Python进行数据分析——线性回归分析

    大家好,线性回归是确定两种或两种以上变量之间互相依赖的定量关系的一种统计分析方法。根据自变量的个数,可以将线性回归分为一元线性回归和多元线性回归分析。 一元线性回归:就是只包含一个自变量,且该自变量与因变量之间的关系是线性关系。例如通过广告费这

    2023年04月10日
    浏览(79)
  • 使用Python批量进行数据分析

    知识延伸 1、sort_value()是pandas模块中DataFrame对象的函数,用于将数据区域按照某个字段的数据进行排序,这个字段可以是行字段,也可以是列字段。 语法格式: sort_value(by=\\\'##\\\',axis=0,ascending=True,inplace=False,na_position=\\\'last\\\') 参数 说明 by 要排序的列名或索引值 axis 如果省略或者为

    2024年02月10日
    浏览(28)
  • 如何使用Python进行数据分析?

    要使用Python进行数据分析,可以按照以下步骤进行: 安装Python:首先,你需要安装Python解释器。可以从Python官方网站下载并安装适合你操作系统的Python版本。 安装数据分析库:Python有许多强大的数据分析库,如NumPy、Pandas和Matplotlib。使用pip命令或包管理工具安装这些库。 导

    2024年02月10日
    浏览(37)
  • Python中List类型数据结构广泛应用于各种场景中。然而,在数据分析和可视化过程中,经常需要将List转换为Pandas的DataFrame对象。那么如何将...

    Python中List类型数据结构广泛应用于各种场景中。然而,在数据分析和可视化过程中,经常需要将List转换为Pandas的DataFrame对象。那么如何将List转换为DataFrame对象呢?本文将介绍如何使用Python中Pandas库将List转换为DataFrame,并进一步将其转换为字符串。 将Python List转换为Pandas D

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包