【Python数据分析学习笔记①】Pandas的Series对象和DataFrame对象详解.

以下内容为本人原创
原文链接: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数据分析笔记”及时获取文章更新

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

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值