当前位置:   article > 正文

pandas学习笔记

pandas学习笔记

目录

1.前言

2.安装、卸载和导入

3.pandas常见数据类型

4.Series

       (1)创建

        (2)更改元素类型

        (3)索引和切片

                1)按数字索引取值

                2)按标签取值

                3)按切片取值

                4)无顺序取值

                5)布尔表达式取值

        (4)where方法

5.DataFrame

        (1)创建

        (2)常用方法

        (3)整体查询

        (4)排序方法

        (5)切片和取值

                1)切片

                2)loc和iloc方法

                3)布尔索引

6.pandas字符串处理方法

7.pandas中NaN的处理

        (1)删除NaN所在的行或者列

        (2)填充中值或平均值或0


1.前言

        pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

2.安装、卸载和导入

        安装:pip install pandas

        卸载:pip unstall pandas

        导入:important pandas as pd

3.pandas常见数据类型

        1)Series:一维带标签的数组

        2)DataFrame:二维的Series容器

4.Series

       (1)创建

                pd.Series(list1, index = list2)

                以list2为标签,list1为值,默认标签为索引值。

                注意:list1和list2的长度要一致。

                或

                pd.Series(dict)

                以key为标签,value为值。

                ob.index获取标签

                ob.value获取元素值

        (2)更改元素类型

                ob.astype(type)

                与numpy的元素类型一样。

        (3)索引和切片

                1)按数字索引取值

                        ob[n]

                2)按标签取值

                        ob[tag]

                3)按切片取值

                        ob[m:n]

                        ob[tag1:tag2]

                4)无顺序取值

                        ob[index_list]

                        按照index_list中的顺序取值,如ob['c', 'a', 'e']

                5)布尔表达式取值

                        ob[ob>n]

                        取ob中大于n的元素值和其标签

        (4)where方法

                ob.where(cond, other=nan, inplace=False, axis=None, level=None, errors=‘raise’,

        try_cast=False, raise_on_error=None)

                cond:为判断条件

                other:cond为False时,将元素值替换为other,默认为NaN

                inplace:为Ture时,进行原地操作。

                axis:默认为全轴,可指定轴

5.DataFrame

        (1)创建

                pd.DataFrame(2D_ndarray, index=list1, columns=list2)

                index:0轴,axis=0,list1为行标签,默认为二维数组的range(2D_ndarray.shape[0])

                columns:1轴,axis=1,list2为列标签,默认为二维数组range(2D_ndarray.shape[1])

                或

                pd.DataFrame(dict)

                其中dict={key1: [......], key2: [......], ......}

                value的索引值为行标签index,key为列标签column

        (2)常用方法

                ob.shape:显示行数,列数

                ob[column].dtypes:显示该列的dtype,默认显示每一列的Series的dtype

                ob.ndim:显示ob的维度

                ob.index:显示行索引

                ob.columns:显示列索引

                ob.values:以ndarray的类型显示ob的元素值

        (3)整体查询

                ob.head(n):查询头部n行,默认n=5

                ob.tail(n):查询尾部n行,默认n=5

                ob.info():查询ob的type、行索引信息、列索引信息、列详细信息、元素dtype、存储占

        用;其中列详细信息有,#列索引,Column列标签,Non-Null Count统计非NaN的元素数量,

        Dtype该列的dtype

                ob.describe():快速综合统计,均排除NaN的个数,count列元素个数,mean列平均

        数,std列标准差,min列最小值,25%、50%、75%四分位数,max最大值

        (4)排序方法

                ob.sort_values(by, axis=0,ascending=Ture, inplace=False, kind='quicksort')

                by:按字符顺序或者列表的字符顺序

                axis:默认按0轴

                ascending:默认升序

                inplace:默认非原地操作

                kind:默认快速排序方法

        (5)切片和取值

                1)切片

                        ob[start: end: step]用数字索引取行

                        ob[string]或ob[string_list]用列名取列

                2)loc和iloc方法

                        ob.loc[]通过标签索引取行数据,例如ob.loc[index]或ob.loc[[index1, index2]]

                        ob.iloc[index, column]通过计算笛卡尔积获取坐标处元素,例如ob.iloc[0, 2]获取ob

                中坐标为(0,2)的元素;ob.iloc[[0, 2], [1, 3]获取ob中坐标为(0,1)、(0,3)、

                (2,1)、(2,3)的元素。

                3)布尔索引

                        与Series相同且可以逻辑运算

6.pandas字符串处理方法

ob.str.作用

len()

计算字符串长度

strip(chars)

chars —— 要去除的字符  默认为空格或换行符。

等价于str.strip,去除字符串开头和结尾处指定的字符

rstrip(chars)

chars —— 要去除的字符  默认为空格或换行符。

等价于str.rstrip ,删除字符串末尾的指定字符(默认为空格)

lstrip(chars)

chars —— 要去除的字符  默认为空格或换行符。

等价于str.lstrip,截掉字符串左边的空格或指定字符

partition(sep)

sep —— 指定的分隔符。

等价于str.partition,根据指定的分隔符(sep)将字符串进行分割,从左边开始

rpartition(sep)

sep —— 指定的分隔符。

等价于str.rpartition,根据指定的分隔符(sep)将字符串进行分割,从右边开始

lower()

等价于str.lower,所有大写字母转换为小写字母,仅限英文

casefold()

等价于str.casefold,所有大写字母转换为小写字母,包括非英文

upper()

等价于str.upper,小写字母转换为大写字母

find(sub,start,end)

sub —— 要索引的子字符串。

start —— 索引的起始位置。默认值为0。

end —— 索引的结束位置。默认值为字符串长度len(str)。[start,end) 不包括end。

等价于str.find,查找字符串中指定的子字符串sub第一次出现的位置

rfind(sub,start,end)

sum —— 要索引的子字符串。

start —— 索引的起始位置。默认值为0。

end —— 索引的结束位置。默认值为字符串长度len(str)。[start,end) 不包括end。

等价于str.rfind,查找字符串中指定的子字符串sub最后一次出现的位置

注:rfind()函数用法与find()函数相似,rfind()函数返回指定子字符串最后一次出现的位置,find()函数返回指定子字符串第一次出现的位置。

index(sub, start, end)

sub —— 查找的子字符串。

start —— 索引的起始位置,默认为0。

end  —— 索引的结束位置,默认为字符串的长度。

等价于str.index,查找字符串中第一次出现的子字符串的位置

rindex(sub, start, end)

sub —— 查找的子字符串。

start —— 索引的起始位置,默认为0。

end  ——  索引的结束位置,默认为字符串的长度。

等价于str.rindex,返回子字符串最后一次出现在字符串中的索引位置

capitalize()

等价于str.capitalize,将字符串的第一个字母变成大写,其余字母变为小写

swapcase()

等价于str.swapcase,将字符串str中的大小写字母同时进行互换

normalize()

返回Unicode 标注格式。等价于 unicodedata.normalize

translate()

等价于str.translate,根据maketrans(intab, outtab,delchars)函数给出的字符映射表来转换字符

isalnum()

等价于str.isalnum,检测字符串是否由字母和数字组成

isalpha()

等价于str.isalpha,检测字符串是否只由字母组成

isdigit()

等价于str.isdigit,检测字符串是否只由数字组成

isspace()

等价于str.isspace,检测字符串是否只由空格组成

islower()

等价于str.islower,检测字符串中的字母是否全由小写字母组成

isupper()

等价于str.isupper,检测字符串中的字母是否全由大写字母组成

istitle()

等价于str.istitle,检测所有单词首字母是否为大写,且其它字母是否为小写

isnumeric()

等价于str.isnumeric,测字符串是否只由数字组成

isdecimal()

等价于str.isdecimal,检查字符串是否只包含十进制字符

startswith(suffix, start, end)

suffix —— 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略)。

start —— 索引字符串的起始位置。

end —— 索引字符串的结束位置。

等价于str.startswith(pat),判断字符串是否以指定字符或子字符串开头

注意:空字符的情况。返回值通常也为True

endswith(suffix, start, end)

suffix —— 后缀,可以是单个字符,也可以是字符串,还可以是元组("suffix"中的引号要省略,常用于判断文件类型)。

start —— 索引字符串的起始位置。

end —— 索引字符串的结束位置。

等价于str.endswith(pat),判断字符串是否以指定字符或子字符串结尾

 注意:空字符的情况。返回值通常为True

center(width, fillchar)

width —— 指定字符串总长度。

fillchar—— 要填充的单字符,默认为空格。

等价于str.center,即字符串str居中,两边用字符填充

ljust(width, fillchar)

width —— 指定字符串的输出长度。

fillchar—— 将要填充的单字符,默认为空格。

等价于str.ljust,左对齐填充,并使用fillchar填充(默认为空格)

rjust(width, fillchar)

width —— 指定字符串的输出长度。

fillchar—— 将要填充的单字符,默认为空格。

等价于str.rjust,右对齐填充,默认为空格

zfill(width)

width —— 指定字符串的长度,但不能为空。若指定长度小于字符串长度,则直接输出原字符串。

等价于str.zfill,右对齐,前面用0填充到指定字符串长度

match()

对每个元素调用re.match(),将会返回一个布尔数组

extract()

对每个元素调用re.match(),将会返回所有结果构成的字符串数组

findall()

对每个元素用re.findall()

replace()

用正则模式替换字符串

contains()

对每个元素调用re.search()返回布尔类型

count()

计算符合正则表达式的字符串数量

split(sep=None, maxsplit=-1)

sep —— 分隔符,默认为空格,但不能为空即(")。

maxsplit —— 最大分割参数,默认参数为-1。

等价于str.spilt(),支持正则表达式

rsplit(sep=None, maxsplit=-1)

sep —— 分隔符,默认为空格,但不能为空即(")。

maxsplit —— 最大分割参数,默认参数为-1。

等价于str.rsplit()支持正则表达式

join(sep)  

sep——分隔符。可以为空。

指定分隔符,将Series中个元素的字符串连接起来

7.pandas中NaN的处理

        pd.isnull(ob)或者pd.notnull(ob)判断ob内的元素是否为NaN

        (1)删除NaN所在的行或者列

                ob.dropna(axis=0 , how='any', inplace=False)

                axis:默认按0轴删除

                how:any表示含有就删除,all表示全部为NaN时才删除,默认为any

                inplace:True时进行原地操作,默认为False

        (2)填充中值或平均值或0

                ob.fillna(ob.mean())、ob.fillna(ob.median())、ob.fillna(0)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/168556?site
推荐阅读
相关标签
  

闽ICP备14008679号