Panda数据分析入门

简介: 7月更文挑战第12天

数据的处理的软件包有很多,在python中主要应用Pandas来进行处理。Pandas是一个十分成熟的数据处理包,熟练掌握可以高效并且方便地将数据进行转换和清洗,本节主要整理了pandas的一些基本技能和实用技巧,为励志成为数据分析师的你铺路搭桥。

Pandas 是基于 NumPy 的一个开源 Python 库,它被广泛用于数据分析,以及数据清洗和准备等工作。数据科学家经常和表格形式的数据(比如.csv、.tsv、.xlsx)打交道。Pandas可以使用类似SQL的方式非常方便地加载、处理、分析这些表格形式的数据。搭配Matplotlib和Seaborn效果更好。
pandas可以满足以下需求:
• 具备按轴自动或显式数据对齐功能的数据结构。这可以防止许多由于数据未对齐以及来自不同数据源(索引方式不同)的数据而导致的常见错误、集成时间序列功能、既能处理时间序列数据也能处理非时间序列数据的数据结构、数学运算和简约(比如对某个轴求和)可以根据不同的元数据(轴编号)执行、
• 灵活处理缺失数据、
• 在实际构建任何模型之前,任何机器学习项目中的大量时间都必须花费在准备数据、
• 分析基本趋势和模式上。因此需要Pandas来进行处理。
下面我们开始今天的学习之旅。

  1. Pandas入门
    1.1 Pandas的安装与导入
    首先,在使用Pandas前,必须安装Pandas。如果你安装过Anaconda,就可以执行如下命令安装Pandas:
    conda install pandas如果没有安装Anaconda,也没有关系,可以使用Python的pip命令来安装:
    pip install pandas注意:pandas安装会用到numpy库,因此在安装pandas之前一定要安装好numpy。 导入:为了简便,这里使用pd作为pandas的缩写,因为pandas依赖numpy,所以在使用之前需要安装和导入numpy
    import numpy as np
    import pandas as pd打印pandas的版本
    pd.version考虑如下的Python字典数据和Python列表标签:
    data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
     'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
     'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
     'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}
    
    labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']1.2 pandas数据结构介绍
    Pandas有两个数据结构:Series和DataFrame。
    pd.DataFrame:创建pandas矩阵
    • Series是一种类似于以为NumPy数组的对象,它由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(即索引)组成的。可以用index和values分别规定索引和值。如果不规定索引,会自动创建 0 到 N-1 索引。
    pd.Series:创建pandas列表
    • DataFrame是一种表格型结构,含有一组有序的列,每一列可以是不同的数据类型。既有行索引,又有列索引。

​​

​​1.从具有索引标签的字典数据创建一个DataFrame df.
df = pd.DataFrame(data,index = labels)返回DataFrame的前三行
df.iloc[:3]
df.head(3)运行结果如下:

2.从numpy 数组构造DataFrame
df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
df2运行结果如下

3.通过其他DataFrame来创建DataFrame df3
df3 = df2[["a","b","c"]].copy()
df3运行结果如下:

4.从csv文件中每隔n行来创建Dataframe
df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv', chunksize=50)
df2 = pd.DataFrame()

5.用Series创建DataFrame
s_1 = pd.Series(data['animal'])
s_2 = pd.Series(data['age'])
s_3 = pd.Series(data['visits'])
s_4 = pd.Series(data['priority'])
pd_2 = pd.DataFrame([s_1,s_2,s_3,s_4])
pd_2运行结果如下:

pandas处理NaN值
dropna(axis=, how=):丢弃NaN数据,{axis:0(按行丢弃),1(按列丢弃)} {how:'any'(只要含有NaN数据就丢弃),'all'(所有数据都为NaN时丢弃)}
fillna(value=):将NaN值都设置为value的值
isnull():对每各元素进行判断是否是NaN,返回结果矩阵
np.any(matrix) == value:判断matrix矩阵中是否有value值
np.all(matrix) == value:判断matrix矩阵中是否所有元素都是value值
pandas读取数据、导出数据
根据数据的格式,pandas提供了多种数据读取和导出的方法,如:
读取数据:read_csv、read_table、read_fwf、read_clipboard、read_excel、read_hdf
导出数据:to_csv、to_table、to_fwf、to_clipboard、to_excel、to_hdf
df = pd.read_csv('Q1.csv')
print(df)
df.to_csv('Q1_pandas.csv')pandas合并数据
concat方法是拼接函数,有行拼接和列拼接,默认是行拼接,拼接方法默认是外拼接(并集),拼接对象是pandas数据类型。
第一个参数:需要合并的矩阵
axis:合并维度,0:按行合并,1:按列合并
join:处理非公有 列/行 的方式,inner:去除非公有的 列/行,outer:对非公有的 列/行 进行NaN值填充然后合并
ignore_index:是否重排行索引
df1 = pd.DataFrame(np.arange(12).reshape(3, 4), columns=['A', 'B', 'C', 'D'], index=[0, 1, 2])
df2 = pd.DataFrame(np.ones((3, 4)), columns=['B', 'C', 'D', 'E'], index=[1, 2, 3])
print(pd.concat([df1, df2], join='outer', ignore_index=True)) # join = {'outer', 'inner'}
print(pd.concat([df1, df2], axis=1, join_axes=[df1.index]))
print(df1.append([df2], ignore_index=True))append方法在index方向连接两个DataFrame或者对DataFrame进行扩展
append 方法可以直接用list对DataFrame进行扩展。
df = pd.DataFrame([[1, 2], [3, 4]])
df = df.append([[1,2]])
print(df)运行结果:

或者也可以将两个DataFrame连接起来。
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df = df.append(df2)
print(df)运行结果:

需要注意的是,append方法并不能像list的append方法一样对原来的df继续修改,而是建立了一个新的对象。如果要修改df,那么需要重新对df赋值,所以append的方法执行效率并不是很高。
Join方法 是基于Index连接DataFrame,连接方法有内连接、外连接(左连接和右连接)
caller = pd.DataFrame({'key':['A0','A1','A2','A3','A4','A5'],'B':['B0','B1','B2','B3','B4','B5']})
other = pd.DataFrame({'key':['A0','A1','A2'],'C':['C0','C1','C2']})
caller.join(other,lsuffix='_caller',rsuffix='_other',how='inner')运行结果如下:

另外,还有一种merge方法与Join方法类似,不过语法略有不同。
通过on连接两个数据集的相同列,how表示连接的方式也有内连接、外连接(左连接和右连接)
使用merge方式要求合并的两个DataFrame需要有两数据集有一个相同列(不要求数值完全相同),继续以上面数据为例,对比下区别
df = pd.merge(caller,other,on = ['key'],how = 'inner')

相关文章
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析入门:基础知识与必备工具
【4月更文挑战第12天】Python是大数据时代数据分析的热门语言,以其简单易学和丰富库资源备受青睐。本文介绍了Python数据分析基础,包括Python语言特点、数据分析概念及其优势。重点讲解了NumPy、Pandas、Matplotlib、Seaborn和Scikit-learn等必备工具,它们分别用于数值计算、数据处理、可视化和机器学习。此外,还概述了数据分析基本流程,从数据获取到结果展示。掌握这些知识和工具,有助于初学者快速入门Python数据分析。
92 2
|
14天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【8月更文挑战第29天】在数据驱动的时代,掌握数据分析技能变得尤为重要。本文将引导您了解如何使用Python这一强大工具来进行数据分析,从设置开发环境到实际操作案例,逐步深入,帮助您建立起数据分析的基本框架和思维模式。通过阅读本文,您将学会如何利用Python处理、分析和可视化数据,为进一步深入学习奠定坚实的基础。
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析入门涉及基础如Python语言、数据分析概念及优势。
【7月更文挑战第5天】Python数据分析入门涉及基础如Python语言、数据分析概念及优势。关键工具包括NumPy(数组操作)、Pandas(数据处理)、Matplotlib(绘图)、Seaborn(高级可视化)和Scikit-learn(机器学习)。流程涵盖数据获取、清洗、探索、建模、评估和展示。学习和实践这些将助你有效利用数据。
41 2
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
使用Jupyter Notebook进行数据分析:入门与实践
【6月更文挑战第5天】Jupyter Notebook是数据科学家青睐的交互式计算环境,用于创建包含代码、方程、可视化和文本的文档。本文介绍了其基本用法和安装配置,通过一个数据分析案例展示了如何使用Notebook进行数据加载、清洗、预处理、探索、可视化以及建模。Notebook支持多种语言,提供直观的交互体验,便于结果呈现和分享。它是高效数据分析的得力工具,初学者可通过本文案例开始探索。
|
21天前
|
算法 数据挖掘 数据处理
豆瓣评分8.7!Python pandas创始人亲码的数据分析入门手册!
在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学计算社区。进入21世纪以来,在行业应用和学术研究中采用python进行科学计算的势头越来越猛。 近年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以只使用Python这一种语言去构建以数据为中心的应用程序。 作为一个科学计算平台,Python的成功源于能够轻松的集成C、C++以及Fortran代码。大部分现代计算机环境都利用了一些Fortran和C库来是西安线性代数、优选、积分、快速傅里叶变换以及其他诸如此类的算法。
|
22天前
|
算法 数据挖掘 数据处理
豆瓣评分8.7!Python pandas创始人亲码的数据分析入门手册!
在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学计算社区。进入21世纪以来,在行业应用和学术研究中采用python进行科学计算的势头越来越猛。 近年来,由于Python有不断改良的库(主要是pandas),使其成为数据处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以只使用Python这一种语言去构建以数据为中心的应用程序。 作为一个科学计算平台,Python的成功源于能够轻松的集成C、C++以及Fortran代码。大部分现代计算机环境都利用了一些Fortran和C库来是西安线性代数、优选、积分、快速傅里叶变换以及其他诸如此类的算法。
|
27天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
28天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
12天前
|
数据采集 机器学习/深度学习 数据可视化
使用Python进行数据分析的入门指南
【8月更文挑战第30天】本文将引领读者进入Python在数据分析领域的应用,通过实际案例和代码示例,帮助初学者理解并掌握数据处理、可视化以及模型构建的基本技能。我们将从数据探索开始,逐步深入到数据清洗、分析和预测建模,最后以一个综合案例结束,旨在让读者能够独立完成一个数据分析项目。
|
2月前
|
机器学习/深度学习 并行计算 数据挖掘
🎓PyTorch深度学习入门课:编程小白也能玩转的高级数据分析术
【7月更文挑战第29天】踏入深度学习世界,新手也能用PyTorch解锁高级数据分析。
22 2

热门文章

最新文章