(讲解+实例)带你熟悉Python中的数据分析库Pandas

前言

本篇博文对python的数据分析库pandas做了简略的介绍和应用指导,包含pandas模块简介,pandas绘图函数,read_csv,head方法,tail方法,columns方法,shape方法,loc方法,通过列读取数据,对数据加减乘除及其他操作,对数据排序和泰坦尼克号数据集例子。

pandas模块简介

pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

Pandas中常见的数据结构有两种:

Series DateFrame
类似一维数组的对象 类似多维数组/表格数组;每列数据可以是不同的类型;索引包括列索引和行索引。
Series
  • 构建Series:ser_obj = pd.Series(range(10))
  • 由索引和数据组成(索引在左<自动创建的>,数据在右)。
  • 获取数据和索引:ser_obj.index; ser_obj.values
  • 预览数据: ser_obj.head(n);ser_obj.tail(n)

DateFrame

  • 获取列数据:df_obj[col_idx]或df_obj.col_idx
  • 增加列数据:df_obj[new_col_idx] = data
  • 删除列:del df_obj[col_idx]
  • 按值排序:sort_values(by = “label_name”)

常用方法

方法名称 方法功能
Count 非NA值得数量
describe 针对Series或各DataFrame列计算汇总统计
min\max 计算最小值和最大值
argmin\argmax 计算能够获取到最大值或最小值的索引位置
idxmin\idxmax 计算能够获取到最小值和最大值的索引值
quantile 计算样本的分位数(0-1)
sum 值得总和
mean 值得平均值
median 值的算术中位数(50%分位数)
mad 根据平均值计算平均绝对离差
var 样本值得方差
std 样本值得标准差
skew 样本值的偏度(三阶距)
kurt 样本值的峰度(四阶距)
cumsum 样本值的累计和
cummin\cummax 样本值的累计最大值和累计最小值
cumprod 样本值的累计积
diff 计算一阶差分(对时间序列很有用)
pct_change 计算百分数变化

处理缺失数据

  • Dropna()丢弃缺失数据
  • Fillna()填充缺失数据

数据过滤

Df[filter_condition]依据filter_condition(条件)对Df(数据)进行过滤。

绘图功能

Plot(kind,x,y,title,figsize)
Kind(绘制什么形式的图),x(x轴内容),y(y轴内容),title(图标题)
    ,figsize(图大小)

保存图片:

plt.savefig()

Pandas的绘图函数

之前看的直接用matplotlib来绘图,画一张图还得配置各种标题,刻度标签等等。而pandas的DataFrame和Series都自带生成各类图表的plot方法,就可以省略去写行列标签,分组信息等。明显更简洁的多。

  • 线型图

plot方法默认生成的就是线形图。

s = Series(data=np.random.randint(0,10, size=10))
s.plot()
  • 柱状图

Series柱状图示例:

kind = 'bar'/'barh'
s.plot(kind='bar')
s.plot(kind='barh')

DataFrame柱状图示例

df.plot(kind='bar')
  • 直方图

rondom生成随机数百分比直方图,调用hist方法

  1. 柱高表示数据的频数,柱宽表示各组数据的组距 参数bins可以设置直方图方
  2. 柱的个数上限,越大柱宽越小,数据分组越细致
  3. 设置normed参数为True,可以把频数转换为概率
s.plot(kind='hist')

kde图:核密度估计,用于弥补直方图由于参数bins设置的不合理导致的精度缺失问题

s.plot(kind='hist',bins=10,density=True) s.plot(kind='kde')

绘制一个由两个不同的标准正态分布组成的的双峰分布

n1 = np.random.normal(loc=10, scale=5, size=1000)
n2 = np.random.normal(loc=50, scale=7, size=1000)
n = np.hstack((n1,n2))
s = Series(data=n)
s.plot(kind='hist',bins=100,density=True)
s.plot(kind='kde')
  • 散布图

这是官网上关于scatter_matrix方法的描述:
(有网友说看不懂,所以后期我又自己添加了翻译)

 pandas.plotting.scatter_matrix(frame,alpha=0.5,figsize=None,ax=None,
                                grid=False,diagonal='hist',marker='.',
                                density_kwds=None, hist_kwds=None, 
                                range_padding=0.05, **kwargs)
 #主要列举了scatter_matrix的各种参数及其作用,散布图在机器学习里面用的挺多的

Draw a matrix of scatter plots.
#画一个散点图矩阵。
Parameters:
#参数

    frame DataFrame
    #关键帧 数据帧(关键字和关键字)
    alpha float, optional
    #alpha 浮点型,可选
        Amount of transparency applied.
        #透明度的应用
    figsize(float,float), optional
    #figsize(浮点型,浮点型),可选
        A tuple (width, height) in inches.
        #一个以英寸位单位的元组(宽,高)
    ax Matplotlib axis object, optional
    #轴对象
    grid bool, optional
    #grid 布尔型,可选
        Setting this to True will show the grid.
        #将此设置为True将显示网格。
    diagonal {
   
   ‘hist’, ‘kde’}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nine_mink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值