以下内容为本人原创
原文链接:https://blog.csdn.net/Yhen1/article/details/114035467
作者:@Yhen
发布网站:CSDN
未经本人同意禁止转载,如需转载请说明此出处,违者必究

最近买了本数据分析的书,打算跟着书上的内容学习Python数据分析。
但学了又容易忘记,所以就打算写成博文分享出来同时也当做笔记了

(本文所有文字及表格为纯手打,创作不易,可否点赞支持一哈?)

本博客会收录入本人专栏“Yhen数据分析笔记

本文是第一篇
首先学习的是Python数据分析的三剑客之一的Pandas

一.Pandas概述

Pandas是数据分析的三剑客之一,是python的核心数据分析库,他提供了快速灵活的数据结构,能够简单,直观,快速的处理各种类型的数据。

1.Pandas能够处理以下类型的数据:

  • 与SQL或Excel类似的数据
  • 有序和无序(非固定频率)的时间序列数据
  • 带行列标签的矩阵数据
  • 任何其他形式的观测,统计数据集

2.Pandas的功能很多,他的优势如下:

  • 处理浮点与非浮点数据里面的缺失数据,表示为NAN.
  • 大小可变,例如插入或者删除DataFrame等多为对象的列
  • 自动,显式数据对齐,显式的将对象与一组标签对齐,也可以忽略标签,在Series,DataFrame计算时自动与数据对齐
  • 强大,灵活的分组统计(groupby)功能,即数据聚合,数据转换。
  • 可以把Python和Numpy中不规则,不同索引的数据轻松的转换成DataFrame对象.
  • 直观的合并(merge),连接(join)数据集.
  • 灵活的重塑(reshape),透视(pivot)数据集
  • 成熟的导入导出工具,导入文本文件(CSV等支持分隔符的文件),Excel文件,数据库等数据;导出Excel文件,文本文件等,利用超快的HDF5格式保存或加载数据.
  • 支持日期范围生成,频率转换,移动窗口统计,移动窗口线性回归,日期位移等时间序列功能.

二.Pandas的安装

直接用pip安装即可

pip install pandas

三.Pandas使用实例

1.Series对象

Series是Python的Pandas库中的一种数据结构,它类似一维数组,由一组数据以及这组数据相关的标签组成,或者仅有一组数据而没有索引也可以创建一个简单的Series对象,Series可以储存整数,浮点数,字符串,Python对象等多种类型的数据。

①创建Series对象
s=pd.Series(data,index=index)

参数说明:

  • data:表示数据,支持Python字典,多维数组,标量值.
  • index:表示行标签
  • 返回值:Series对象

实例:

import pandas as pd
s=pd.Series([80,60,75])
print(s)

运行结果:
在这里插入图片描述

默认的行索引是0 1 2
也可以

②手动设置索引
import pandas as pd
s1=pd.Series([100,110,120],index=['语文','数学','英语'])
print(s1)

运行结果:
在这里插入图片描述

③Series的位置索引

位置索引是从0开始,[0]是第一个数,[1]是第二个数…以此类推.

实例:通过位置索引获取数据
以刚刚的数据为例,想要通过位置索引获取“数学”成绩,应该怎么做呢?

import pandas as pd
s1=pd.Series([100,110,120],index=['语文','数学','英语'])
print(s1[1])

运行结果:
在这里插入图片描述
直接通过数学的位置索引“1”取得即可

我们也可以直接通过

④标签索引

来获取数据
比如我想要获取英语成绩,那么就可以直接通过“英语成绩”这个标签取出

import pandas as pd
s1=pd.Series([100,110,120],index=['语文','数学','英语'])
print(s1['英语'])

运行结果:
在这里插入图片描述
那么如果想要同时获取语文和英语的成绩呢?

print(s1[['语文','英语']])

运行结果:
在这里插入图片描述

当然,我们也可以通过

⑤切片索引

的方式同时获取语文到英文的数据

print(s1['语文':'英语'])

运行结果:
在这里插入图片描述

同样,我们用

⑥位置切片

也可以达到同样的效果

print(s1[0:3])

运行结果:
在这里插入图片描述

⑦获取Series的索引和值
#获取索引
print(s1.index)
#获取索引
print(s1.index)

运行结果分别如下:
在这里插入图片描述
在这里插入图片描述

2.DataFrame对象

DataFrame对象是Pandas库中的一种数据结构,他是由多种类型的列组成的二维表数据结构,类似于Excel,SQL或者Series对象构成的字典,DataFrame是最常用的Pandas对象,它与Series一样支持多种类型的数据。

实例①:创建一个DataFrame对象
import pandas as pd
pd.set_option("display.unicode.east_asian_width",True)
data=[[110,120,130],[120,130,140],[140,150,160]]
#行索引
index=[0,1,2]
#列索引
columns=['语文','数学','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(df)

运行结果:
在这里插入图片描述

实例②:遍历DataFrame对象
#遍历DataFrame对象的每一列
for col in df.columns:
    #以列号为索引取出数据
    series=df[col]
    print(series)

运行结果:
在这里插入图片描述
从运行结果可以得知,其实上述代码返回的其实是Series.

实例③:通过字典创建DataFrame对象
df=pd.DataFrame(
{
  '语文' :[110,120,130],
  '数学':[100,120,98],
  '英语':[100,130,108]      
},index=['小明','小红','小王']
)
print(df)

运行结果:
在这里插入图片描述

DataFrame的重要属性和函数

重要属性及描述

属性 描述 举例
values 查看所有元素的值 df.values
dtypes 查看所有元素的类型 df.dtypes
index 查看所有行名,重命名行名 df.index ,df.index=[1,2,3]
columns 查看所有列名,重命名列名 df.columns,df.columns=[‘语文’,‘数学’,‘英语’]
T 行列数据转换 df.T
head 查看前n条数据,默认五条 df.head() ,df.head(10)
tail 查看后条数据,默认五条 df.tail() ,df.tail(10)
shape 查看行数和列数,[0]表示行,[1]表示列 df.shape[0],df.shape[1]
info 查看索引,数据类型和内存信息 df.info

重要函数及描述

函数 描述 举例
describe 查看每列的统计汇总信息,DataFrame类型 df.describe()
count 返回每一列的非空值的个数 df.count()
sum 返回每一列的和,无法计算返回空值 df.sum()
max 返回每一列的最大值 df.max()
min 返回每一列的最小值 df.min()
argmax 返回最大值所在的自动索引位置 df.argmax()
argmin 返回最小值所在的自动索引位置 df.argmin()
idxmax 返回最大值所在的自定义索引位置 df.idxmax()
mean 返回每一列的平均数 df.mean()
median 返回每一列的中位数 df.median()
var 返回每一列的方差 df.var()
std 返回每一列的标准差 df.std()
isnull 检查每一列的空值,空值为True;否则为False,返回布尔类型数值 df.isnull()
notnull 检查每一列的空值,空值为False;否则为True,返回布尔类型数值 df.notnull()

这篇文章介绍了 Pandas的Series对象和DataFrame对象
下篇文章将介绍使用pandas导入外部数据
关注本专栏“Yhen数据分析笔记”及时获取文章更新

(本文所有文字及表格为纯手打,创作不易,可否点赞支持一哈?)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐