pandas数据结构的Series
用python做数据分析离不开pandas,它有两个非常重要的数据结构:Series,DataFrame
先学习Series,Series可以看做是一维数组,它是有一组数据和一组与之对应的一组索引组成。
例如:
![](https://img.haomeiwen.com/i18528709/726bebfc47d12841.png)
从上面看出series表现形式是 左边是索引index 右边是值value,在demo中我并没有指定索引,会自动创建索引从0 到 N-1 ,
可以通过series的values 和index的属性获取数组的表现形式和索引对象
![](https://img.haomeiwen.com/i18528709/e676927bac1e699b.png)
通过索引取某个值或一组值,
![](https://img.haomeiwen.com/i18528709/f01251434945ddb3.png)
定义serise的时候也可以指定索引名,例如:值2,4,6,8 分别指定索引名称a b c d
![](https://img.haomeiwen.com/i18528709/04cf4d1d1672790d.png)
更改指定索引的值:把索引d 对应的值重新赋值为9
![](https://img.haomeiwen.com/i18528709/d9e61a44970f0d30.png)
索引也可以通过赋值的方式进行修改
![](https://img.haomeiwen.com/i18528709/f1b2f914e565ce3f.png)
series数组之间可以通过运算符进行运算,例如我们把demo 和 demo2进行相加,从显示的结果来看只要索引名称相同的值才进行了加的运算,索引不匹配的都是显示NaN
![](https://img.haomeiwen.com/i18528709/a8d4f465ce35819d.png)
那么如何把demo3里面是NaN的无效数据行删除呢?这也是数据分析里面的数据清洗的一个小点点
这里用到dropna函数,如下图,清理是空的数据行。dropna()默认是清理空的数据行,原始数据不变化,
如下删除后的数据赋予demo4了 demo3的数据是不变化的
![](https://img.haomeiwen.com/i18528709/8e5b5556666d38ea.png)
dropna 有两个参数:axis=0,inplace=False 是默认的,axis=0 代表删除行,inplace=False代表不修改原始数据。如果在原数据上修改 inplace=True , 删除整列时axis=1 需要配合列名使用 指定具体的列。
series 的增、删、改、查:
增: 是用append()函数进行两个series进行链接,add()函数是加法运算不是增加元素。
例如把 exp 追加到 demo 的后面:
![](https://img.haomeiwen.com/i18528709/e931ce14503f6ad1.png)
删:用drop()函数
例如把demo的元素f删除,还记得inplace=True是什么作用了吗?在原始数据基础上修改
![](https://img.haomeiwen.com/i18528709/0f8f92064fb5be2e.png)
改:前面好像讲过了,就是通过索引直接赋值
例如把demo的索引g对应的值有11改成15
![](https://img.haomeiwen.com/i18528709/b8dec9e889c4557e.png)
查:前面说过可以通过索引查单独的值
也可以通过索引切片和位置切片查询一部分值
例如:demo['a':'c'] 是索引a---c之间的值
demo[:3] 是前3个值
![](https://img.haomeiwen.com/i18528709/3952b2540e80dbd6.png)
也可以利用函数head()显示前多少行,默认是前5行,也可以指定数字
![](https://img.haomeiwen.com/i18528709/a0e4949f02366a4d.png)
同理还有个函数显示后面多少行 tail() 默认是后5行,也可以在指定数字
![](https://img.haomeiwen.com/i18528709/e48a45c4b17d6859.png)
以上就是整理的series的简单用法,也是数据分析中用到的常用点。像学习其他语言一样,学习一个结构的时候,要弄清楚这个数据结构的:增、删、改、查 ,也是学习的逻辑思路。