python-for-data-analysis_2nd 第七章 数据清洗和准备

本章聚焦数据清洗和准备,涵盖处理缺失数据、移除重复数据、字符串操作等。介绍如何使用Pandas的fillna、dropna、replace等方法进行数据转换,强调了在数据分析中处理缺失值和异常值的重要性,以及正则表达式和字符串函数在文本处理中的应用。

第七章 数据清洗和准备

在数据分析和建模的过程,相当多的时间要⽤在数据准备上:加载、清理、转换以及重塑(load, clean up, transform, and reshape)。许多研究者都选择使⽤通⽤编程语⾔(如Python、Perl、R或Java)或UNIX⽂本处理⼯具(如sed或awk)对数据格式进⾏专⻔处理。但是pandas和内置的python标准库提供了一组高级的、灵活的、快速的工具,pandas中许多设计和实现都是由真实应用的需求所驱动的,通俗的讲就是pandas在应用于处理数据是非常有效的。

本章的重点:处理缺失数据、重复数据、字符串操作和其它分析数据转换的⼯具

7.1处理缺失数据

1.常用方法
方法 说明
dropna 去除表中缺失行或列
fillna 指定值填充
isnull 返回不为NA值的布尔值对象
notnull isnull的否定
string_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado'])
string_data
string_data.isnull()
string_data.fillna(12)
#下面两者的区别是一样的
string_data.dropna()
string_data[string_data.notnull()]

可以通过pandas.isnull或布尔索引的⼿⼯⽅法,但dropna可能会更实⽤⼀些。

2.滤除缺失数据(Filling In Missing Data)
df = pd.DataFrame(np.random.randn(7, 3))
df.iloc[:4, 1] = NA
df.iloc[:2, 2] = NA
df.iloc[:3,0]=NA
df
df.dropna()
#thresh这个作用不大
df.dropna(thresh=2)
3.填充缺失数据(Filling In Missing Data)

不想滤除缺失数据(有可能会丢弃跟它有关的其他数据),⽽是希望通过其他⽅式填补那些“空洞”。

fillna()

df = pd.DataFrame(np.random.randn(6, 3))
df.iloc[2:, 1] = NA
df.iloc[4:, 2] = NA
df
#字典填充
df.fillna({
   
   1: 0.5, 2: 0})
#前向填充
df.fillna(method='ffill')
df.fillna(method='ffill', limit=2)	
#平均数填充
df.fillna(df.mean())

常用的参数:value、method、axis、inplace、limit

7.2 数据转换(Data Transformation)

1.移除重复数据(Removing Duplicates)

duplicated() 、drop_duplicates()

data = pd.DataFrame({
   
   'k1': ['one', 'two'] * 3 + ['two'],
                     'k2': [1, 1, 2, 3, 3, 4, 4]})
data
#返回bool值,重复为True;不重复为False
data.duplicated()
#在添一列
data['v1'] = range(7)
#去除重复列
data.drop_duplicates(['k1', 'k2'], keep='last')
2.利⽤函数或映射进⾏数据转换(Transforming Data Using a Function or Mapping)

map()

data = pd.DataFrame({
   
   'food': ['bacon', 'pulled pork', 'bacon',
                              'Pastrami', 'corned beef', 'Bacon',
                              'pastrami', 'honey ham', 'nova lox'],
                     'ounces': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
meat_to_animal = 
### 回答1: 《Python数据分析(第2版)》是由Wes McKinney著写的一本关于使用Python进行数据分析的书籍,第2版是其中文版本。这本书通过Python语言提供了一种简单、灵活、高效的方式来处理分析数据。它主要涵盖了数据清洗、数据处理、数据可视化以及数据分析等方面的内容。 这本书的内容主要分为四个部分,分别是“准备工作”、“pandas库入门”、“数据规整化”数据分析”的章节。 在“准备工作”部分,作者介绍了Python数据分析的环境设置,包括安装Python相关的库(如NumPypandas)以及说明如何执行示例代码。 “pandas库入门”一章介绍了pandas库的基本概念常用操作,以及如何读取处理各种数据格式。 “数据规整化”一章讨论了数据清洗转换的技术,包括处理缺失值、重复数据以及重新组织数据等内容。 “数据分析”一章是这本书的核心部分,它介绍了如何使用Python进行数据分析,包括数据聚合、分组透视等常用的数据分析方法。 这本书中通过许多实例示例代码来演示如何使用Python进行数据分析,帮助读者理解掌握数据分析的基本方法技巧。它适合那些对数据分析感兴趣的读者,无论是初学者还是有一定经验的数据分析师。 总的来说,《Python数据分析(第2版)》是一本权威的、实用的关于使用Python进行数据分析的指南,它能够帮助读者快速入门并掌握数据分析的技巧。 ### 回答2: 《Python数据分析(第2版)中文版》是一本介绍使用Python进行数据分析的书籍。该书由Wes McKinney撰写,是第一本详细介绍使用Python进行数据分析的专业书籍。 这本书主要分为8个部分,涵盖了数据分析的基本概念、数据处理、数据可视化、时间序列分析等内容。第一部分介绍了数据分析的基本知识工具,包括NumPy、PandasIPython等库工具的使用。第二部分介绍了数据的处理清洗,包括缺失数据的处理、数据合并重塑等操作。第三部分重点介绍了数据的可视化,包括MatplotlibSeaborn库的使用,可以帮助读者展示分析数据。第四部分介绍了数据聚合分组的方法,包括使用GroupBy、重塑数据转换等技术。第五部分涵盖了时间序列数据的处理分析。第六部分介绍了面板数据的处理。第七部分介绍了更高级的数据分析技术,包括移动窗口函数爬虫技术等。第八部分介绍了常见的数据分析案例,通过实际的案例帮助读者理解应用所学知识。 《Python数据分析(第2版)中文版》旨在帮助读者使用Python进行数据分析,提供了丰富的工具案例,可以帮助读者掌握数据分析的基本技巧方法。此外,该书还提供了在线的资源教学视频,方便读者进一步学习应用所学知识。 总之,《Python数据分析(第2版)中文版》是一本内容丰富、实用性强的书籍,对于想要学习应用Python进行数据分析的读者来说是一本不可多得的工具书。 ### 回答3: 《Python 数据分析》(第二版)是一本讲述使用Python进行数据分析的书籍,由美国著名数据科学家Wes McKinney撰写。该书是McKinney首次出版的同名书籍的中文版,内容涵盖了一系列数据分析常用的Python工具技术。 《Python 数据分析》(第二版)首先介绍了NumPyPandas两个Python数据分析库的基本用法。NumPy是一个强大的数值计算库,能够高效地处理大型数据集,而Pandas是一个建立在NumPy之上的数据分析工具,提供了更高级的数据结构数据处理功能。 接着,该书讲解了如何使用Pandas进行数据清洗、变形处理。Pandas提供了DataFrameSeries等数据结构,能够方便地对数据进行处理操作。读者可以学习如何加载数据、处理缺失值、去重、切片、过滤、合并等操作。 书中还介绍了数据分析中常用的统计分析可视化工具。读者可以学习如何使用PandasMatplotlib库进行数据的统计分析可视化展示,包括生成各种图表绘制统计图。 此外,《Python 数据分析》(第二版)还介绍了使用Pandas进行时间序列分析、数据聚合加工等高级数据处理技术。读者可以学习如何处理时间序列数据、使用分组聚合函数进行数据分析等。 总体来说,《Python 数据分析》(第二版)是一本很好的Python数据分析入门教程,适合对数据分析感兴趣的初学者。通过学习这本书,读者可以掌握使用Python进行数据分析的基本技能,并能够在实际项目中应用所学知识。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值