数据分析 - pandas(5)

前言

在上一节数据分析 - pandas(4)中,我们讲到了pandas的布尔索引,主要判断矩阵数据表的数据的大小,今天,我们来接着往下总结更多的内容。

字符串方法

方法说明
cat实现元素级的字符串连接操作,可指定分隔符
contains返回表示各字符串是否含有指定模式的布尔型数组
count模式的出现次数
endswith、startwith相当于对各个元素执行x.endswith(pattern)或x.startswith(pattern)
findall计算各字符串的模式列表
get获取各元素的第 i 个字符
join根据指定的分隔符将Series中各元素的字符串串联起来
len计算各字符串的长度
lower、upper转换大小写。相对于各个元素执行x.lower()或x.upper()
match根据指定的正则表达式对各个元素执行re.match
pad在字符串的左边、右边或左右两边添加空白字符
center相当于pad(side=‘both’)
repeat重复值。例如s.str.repeat(3)相当于各个字符串执行 x*3
replace用指定字符串替换找打的模式
slice对Series中的各个字符串进行子串截取
split根据分隔符或正则表达式对字符串进行拆分
strip、rstrip、lstrip去除空白符,包括换行符。相当于对各个元素执行x.strip()、x.rstrip()、x.lstrip()

以上就是pandas中常用的字符串方法。
接下来我们来学习一下pandas中对于缺失数据的处理

缺失数据的样本

准备矩阵数据表

In [42]: df
Out[42]:
      V   W     X     Y   Z
A   NaN   2   NaN   4.0   5
B   6.0   7   8.0   0.0  10
C   NaN  12   NaN  14.0  15
D  16.0  17  18.0  19.0  20

可以看到,上面的这组数据,存在NaN,和0.0

通常情况下,我们的数据缺失就是这种现象

这里值得注意的是:pandas中当给某个数据转换为NaN时,此数据不需要为float类型。但是numpy必须为float类型

numpy和pandas中NaN的不同点

numpypandas
数据转nan的必要条件是类型为floatNaN转换中 int类型、float类型均可
判断是否存在nan的语法 isnan判断是否存在NaN:pd.isnull(矩阵数据表)/pd.notnull(矩阵数据表)
numpy中计算行列总和时,存在nan时,结果必定为nan,即,nan 和 任何值计算都为 nan在计算中,nan不参与计算,不需要做特殊处理

对缺失数据进行处理

根据上面的表格,我们也基本上了解了pandas中的NaN的特点

  • 判断数据是否为NaN:pd.isnull(矩阵数据表)pd.notnull(矩阵数据表)
  • 处理方式
    • 方式一:删除NaN所在的行、列 (dropna)
      dropna(axis=0/axis=1,how=‘any’/how=‘all’,inplace=False/inplace=True)

        axis表示行列:0为行、1为列,表示,当NaN出现时,删除的是他的那一行、还是那一列。
        how表示条件any表示出现一个即删除,all表示当某一列,或者某一行均为NaN的时候,才删除
        inplace表示是否原地修改inplace:True表示所做的修改作用于当前的矩阵数据表上inplace:False表示所做的修改不作用于当前的矩阵数据表上
    • 方式二:填充数据 (fillna)
      矩阵数据表.fillna(t.mean())矩阵数据表.fillna(t.median())矩阵数据表.fillna(0)
      注:均值mean,中位数median
  • 处理为 0 的数据:
    t[t==0]=np.nan
    当然,我们在现实的编程中,不会每次为 0 的数据都需要处理
    因为:在计算平均值等情况下,nan是不会参数计算的,但是0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值