一文详解Python中数据清洗与处理的常用方法

2025-01-28 16:50

本文主要是介绍一文详解Python中数据清洗与处理的常用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下...

在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战。

本文总结了多种数据清洗与处理方法:

缺失值处理包括删除缺失值、固定值填充、前后向填充以及删除缺失率高的列;

重复值处理通过删除或标记重复项解决数据冗余问题;

异常值处理采用替换或标记方法控制数据质量;

数据类型转换确保数据格式符合分析需求,例如转换为整数或日期类型;

文本清洗包括去空格、字符替换及转换大小写等操作python

此外,还介绍了数据分组统计、数据分箱与标准化的应用。例如,分组统计可按列求均值,数据分箱能为连续变量赋予分类标签,而归一化则通过压缩数据范围提升模型表现。这些方法能有效提高数据质量与分析效率,是数据科学中不可或缺的能。         

缺失值处理

删除缺失值

df_dropped = df.dropna()
print("\n删除缺失值后:")
print(df_dropped)

用固定值填充缺失值

df_filled = df.fillna({
    'title': 'Unknown',
    'author': 'Unknown Author',
    'price': df['price'].mean()
})
print("\n填充缺失值后:")
print(df_filled)

前向填充

df_ffill = df.fillna(method='ffill')
print("\n前向填充缺失值后:")
print(df_ffill)

后向填充

df_bfill = df.fillna(method='bfill')
print("\n后向填充缺失值后:")
print(df_bfill)

删除缺失率高的列

df_dropped_cols = df.dropna(axis=1, thresh=len(df) * 0.5)  
print("\n删除缺失率高的列后:")
print(df_dropped_cols)

重复值处理

删除重复值

df_deduplicated = df.drop_duplicates()
print("\n删除重复值后:")
print(df_deduplicated)

标记重复值

df['is_duplicate'] = df.duplicated()
print("\n标记重复值后:")
print(df)

异常值处理

替换异常值

df['price'] = df['price'].apply(lambda x: x if 0 <= x <= 100 else df['price'].mean())
print("\n替换异常值后python:")
print(df)

标记异常值

df['is_outlier'] = df['price'].apply(lambda x: 1 if x < 0 or x > 100 else 0)
print("\n标记异常值后:")
print(df)

数据类型转换

转换为整数类型

df['price'] = df['price'].astype(int)
print("\n转换为整数后:")
print(df)

转换为日期类型

df['date'] = pd.to_datetime(df['date'], errors='coerce')
print("\n转换为日期类型后:")
print(df)

文本清洗

去掉两端空格

df['title'] = df['title'].str.strip()
print("\n去掉两端空格后:")
print(df)

替换特定字符

df['title'] = df['title'].str.replace('[^a-zA-Z0-9\s]', '', regex=True)
print("\n替换特定字符后:")
print(df)

转换为小写

df['title'] = df['title'].str.lower()
print("\n转换为小写后:")
print(dfwww.chinasem.cn)

数据分组统计

按列分组求均值

grouped = df.groupby('author')['price'].mean()
print("\n按作者分组的平均价格:")
print(grouped)

数据分箱

按价格分箱

bins = [0, 10, 20, 30]
labels = ['低', '中', '高']
df['price_level'] = pd.cut(df['price'], bins=bins, labels=labels, right=False)
print("\pythonn按价格分箱后:")
print(df)

数据标准化

归一化处理

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['price_scaled']js = scaler.fit_transform(df[['price']])
print("\n归一化后的数据:")
print(df)

到此这篇关于一文详解python中数据清洗与处理的常用方法的文章就介绍到这了,更多相关Python数据清洗与处理内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于一文详解Python中数据清洗与处理的常用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153253

相关文章

Apache伪静态(Rewrite).htaccess文件详解与配置技巧

《Apache伪静态(Rewrite).htaccess文件详解与配置技巧》Apache伪静态(Rewrite).htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令,主要的... 一、.htAccess的基本作用.htaccess是一个纯文本文件,它里面存放着Apache服务器

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

golang panic 函数用法示例详解

《golangpanic函数用法示例详解》在Go语言中,panic用于触发不可恢复的错误,终止函数执行并逐层向上触发defer,最终若未被recover捕获,程序会崩溃,recover用于在def... 目录1. panic 的作用2. 基本用法3. recover 的使用规则4. 错误处理建议5. 常见错

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot