python入门项目:数据清洗


前言

本文是对数据清洗的简单学习。
本文使用的数据来源为:博雅读书社所提供的数据
在这里插入图片描述


一、数据清洗是什么?

数据清洗是指在数据分析或挖掘之前进行的,对原始数据进行预处理以确保数据质量高、准确性好的一系列操作。其目的是识别、修改或删除数据集中不准确、不完整、重复、有误或非法的记录,以提高后续分析和建模过程的效率和准确性。

数据清洗中可能包括以下几种情况:

1、缺失值处理:对缺失数据进行填充或删除操作,使得数据集中不存在缺失值。

2、异常值处理:对数据集中异常值进行判断和处理,以避免对后续分析产生影响。

3、重复值处理:删除数据集中的重复记录,避免造成冗余和浪费。

4、数据类型转换:将数据中的字符串等类型转换为数值类型,以便能够进行更多的统计分析。

5、数据归一化:将不同维度的数据进行标准化,以避免由于数据单位等差异导致的分析误差。

通过数据清洗,我们可以把原始数据中的噪声和冗余信息清除,提升数据质量,更好地完成后续的数据分析和建模任务。

二、重复值处理

import pandas as pd
raw = pd.read_excel("shops_nm.xlsx")

#判断有没有重复的数据行
duplicate_raw = raw[raw.duplicated() == True]
if len(duplicate_raw) == 0:
    print("没有重复的数据行。")
else:
    print(duplicate_raw)
    
#制造一个重复的行  iloc[] 方法按照行、列的顺序提取
#print(raw.iloc[0,:])
raw.iloc[1,:] = raw.iloc[0,:] #把第一行赋给第二行
duplicate_raw = raw[raw.duplicated() == True]
if len(duplicate_raw) == 0:
    print("没有重复的数据行。")
else:
    print(duplicate_raw)
#判断店名
duplicte_shop = raw['店名'][raw['店名'].duplicated()==True]
if len(duplicte_shop) == 0:
    print("没有重复的数据行。")
else:
    print(duplicte_shop)
#去除重复的 drop_duplicates()
drop_duplicates_shops = raw.drop_duplicates(subset=['店名'])
print(drop_duplicates_shops.head())

程序的结果如图所示:
在这里插入图片描述
可以看到一开始是没有重复的数据行的,然后我就把第一行赋给了第二行,人为制造一个重复的数据行,然后找到这个重复的数据行,又找店名里面有没有重复的。最后是剔除重复的数据行。

三 缺失值处理

缺失值不一定指这个位置没有相应的数据,而是指这个位置填写的数据不能用,比如说一些不规范的填写也会造成缺失值。

import pandas as pd
raw = pd.read_excel("shops_nm.xlsx")
print(raw.shape)
#查找缺失值
null_raw = raw[raw['评价数'].isnull() == True]
print(null_raw)

#剔除
raw1 = raw[raw['评价数'].isnull() == False]
print(raw1.shape)

效果图如下,可以看到剔除完的数据行数减少了4行
在这里插入图片描述

四、数据类型转换

数据类型转换是什么意思呢?为什么要进行数据类型转换?举个简单的例子:
在这里插入图片描述
在图中人均的Series里面,可以看到,有些商家数据填写的不规范,本应该都是float类型,但是他里面会有汉字,这就涉及到数据类型的转换了,否则后面对数据进行处理的时候会出现很大的问题。

import pandas as pd
raw = pd.read_excel("shops_nm.xlsx")
print(len(raw))
#方法1:切片函数+for循环+if条件
filter_word = ["人均:","人均","大概","左右","差不多"]
for i in range(len(raw)):
    value = raw.loc[i,'人均']
    if type(value)== float or type(value)==int:
        continue
    for j in filter_word:
        if j in value:
            raw.loc[i,'人均']= raw.loc[i,'人均'].replace(j,'')
print(raw.head()['人均'])

结果如图所示:
在这里插入图片描述
可以看到,字符被清洗掉了,不过上面的方法还是不推荐使用的,有更高级的方法可以实现上面的功能:”apply()函数封装for循环+if条件判断“的方法。

#方法2apply()+for+if
def clean_price(x):
    filter_word = ["人均:", "人均", "大概", "左右", "差不多"]
    if type(x) == float or type(x) == int:
       return x
    for j in filter_word:
        if j in x:
            x.replace(j,'')
    return x

raw['人均']= raw['人均'].apply(clean_price)
print(raw.head()['人均'])

看上去一样,但是apply()的效率是for+if的5倍,如果数据量很大的话,差距就很明显了。

  • 3
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Python金融数据分析是一门应用Python编程语言进行金融数据处理和分析的技术。进行金融数据分析可以帮助金融从业人员了解市场趋势、制定交易策略和评估风险。 CSDN是一个IT技术社区,提供了大量关于Python金融数据分析的学习资源和实战项目。 首先,入门阶段,我们可以通过CSDN学习Python语言的基础知识,包括数据类型、控制结构、函数等;学习Python中与金融数据处理和分析相关的库,如NumPy、Pandas、matplotlib等,掌握这些库的使用方法。 接下来,我们可以通过CSDN提供的教程和案例学习如何使用Python进行金融数据预处理,包括数据清洗、缺失值处理、数据标准化等;学习如何使用Python进行金融数据可视化,通过绘制图表展示数据的趋势和关联性。 进一步地,我们可以通过CSDN上的实战项目学习如何应用Python进行金融数据分析。例如,可以学习如何使用Python进行金融时间序列分析,预测股票价格;学习如何使用Python进行金融风险管理,评估投资组合的风险;学习如何使用Python进行金融文本数据分析,从新闻和社交媒体等大量文本数据中挖掘金融市场的信息等。 通过CSDN提供的学习资源和实战项目,我们可以逐步掌握Python金融数据分析的技能,并将其应用于实际金融问题的解决中。不断学习和实践将使我们在金融行业中具备竞争力,并能够更好地抓住市场机遇。 ### 回答2: Python金融数据分析入门到实战是一门在CSDN学习的课程,旨在教会学员如何使用Python进行金融数据分析,并能够运用所学知识在实际项目中进行实战。 这门课程首先介绍了Python在金融数据分析领域的重要性和应用场景。随着金融行业数据量的迅速增长,使用Python进行数据分析已经成为必不可少的技能之一。接着,课程会引导学员搭建Python开发环境,并介绍常用的金融数据分析工具和库,如pandas、numpy等。 在学习过程中,学员将学到如何读取金融数据,并进行数据的清洗和预处理。这是数据分析的第一步,只有数据质量好,才能进行有效的分析。之后,课程将重点讲述如何利用Python进行数据可视化。通过绘制各种图表和图像,可以更直观地展示数据的分布、趋势和关联性,为后续的分析提供更好的依据。 除此之外,课程还会介绍金融数据分析中的常见算法和模型,例如回归分析、时间序列分析、机器学习等。学员将了解不同算法的原理和应用场景,并能够利用Python实现这些算法。通过实战项目,学员可以更好地理解算法和模型的实际应用,提高自己的数据分析能力。 最后,该课程还会涉及一些金融市场的实战案例,如股票分析、投资组合优化等。学员可以应用所学的知识和工具,对真实的金融数据进行分析和预测,为投资决策提供支持。 总而言之,Python金融数据分析入门到实战课程通过理论与实践结合的方式,教会学员如何使用Python进行金融数据分析。通过该课程的学习,学员可以掌握数据处理、数据可视化、算法应用等技能,并能够将其应用于实际金融项目中。这门课程对于有意向从事金融数据分析工作的人员来说,具有很高的实用价值。 ### 回答3: Python是一种高级编程语言,通过它可以进行金融数据分析。在金融领域,数据分析是非常重要的,可以帮助人们做出更好的金融决策,预测市场走势,评估投资风险等。 Python具有丰富的库和模块,多样的功能可以用于金融数据分析,其中最为常用的包括Pandas,Numpy,Matplotlib等。 Pandas是处理和分析金融数据的重要库,它提供了灵活的数据结构和数据处理工具,使得数据预处理和清洗变得更加简单。Pandas还提供了大量的统计函数和方法,方便用户对数据进行统计分析。 Numpy是Python中一个重要的数值计算库,它提供了很多数学函数和处理数组的功能,非常适合用来进行数值计算和矩阵操作。在金融数据分析中,可以利用Numpy来进行金融计算、统计量计算和回归等分析。 Matplotlib是一种绘图库,通过它可以制作各种图表,如折线图、柱状图、散点图等。在金融数据分析中,我们可以使用Matplotlib来可视化数据,以便更直观地理解数据的特征和趋势。 在学习Python金融数据分析的过程中,可以参考CSND上的教程。这个教程包括从入门到实战的内容,可以帮助初学者快速掌握Python金融数据分析的基本知识和技能。此外,还可以通过阅读相关书籍和参加培训课程来深入学习和实践。 总之,Python金融数据分析是一个很有前景和实用性的领域,通过学习Python和相关库的使用,可以更加高效地进行金融数据分析,并取得更好的分析结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值