【Python数据分析基础笔记(仅供本人学习记录)】P1.Series对象及常用操作

7.1 pandas的导入方法:

import pandas as pd 或者 from pandas ipmort *
import pandas as pd
import numpy as np
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:123456@localhost/dataanlysis?charset=utf8')

7.2pandas的数据结构

1.创建Series对象

(1)通过Series()构造函数创建

格式:pandas.Series(data[, index])

参数说明:

  • data:输入的数据,它可以是NmuPy中任意数据类型
  • index:series对象中数据的标签
  • 调用Series()构造函数,要把存放在series对象中的数据一数组形式传入,例如:
se1 = pd.Series([2,4,-3,7])

左边是标签,右边是标签对应的元素

se1
0    2
1    4
2   -3
3    7
dtype: int64

声明series时,若不指定标签,则默认使用从0开始依次递增作为标签;如果想对数据使用特殊意义的标签,需指定index选项,把存有标签的数组赋值给index,例如:

se2=pd.Series([2,4,-3,7],index=['b','c','a','d'])
se2
b    2
c    4
a   -3
d    7
dtype: int64

(2)用Numpy数组或其他series对象定义新的series对象

1).用数组定义新的series对象,代码如下:

arr=np.array([2,3,4,5])
se3=pd.Series(arr)
se3
0    2
1    3
2    4
3    5
dtype: int32

2)用其他series对象定义新的series对象,命令如下

se4=pd.Series(se2)
se4
b    2
c    4
a   -3
d    7
dtype: int64

这两种方式的对象都是动态插入的,原有对象的值发生变化,新series对象中这些元素也会发生变化

(3)将字典转换为series对象

字典中的一个键与值的映射关系,可以看做是series对象中的索引值到数据值的一个映射,因此,可以将字典直接转化为series对象

s_data={'电话':15696663527,'年龄':19,'exam':90}
se5=pd.Series(s_data)
se5
电话      15696663527
年龄               19
exam             90
dtype: int64

注意:
将字典直接转化为series对象,当字典的值变化时,已经转化为series对象中的元素不会变化。同样,也可以将series对象转换成字典

2.查看Series值和标签

通过series的属性values和index可查看值和标签

例如:se2.values查看值和se2.index查看标签

3.选择内部元素

(1)选择单个元素

若想获取series对象的内部元素,把它看成普通的NumPy数组,指定索引即可。例如se1[2]获取的元素是-3

或指定位于索引位置处的标签。例如,se2[‘a’]获取的元素也是-3

(2)选择多个元素

通过切片来选择多个元素,切片“[起始值:终止值:步长]”,如果没有终止值,则默认终止值为最后一个索引

se1[0:3]
0    2
1    4
2   -3
dtype: int64

或者可以使用元素对应的标签,需把标签放入数组中

se2[['a','d','b']]
a   -3
d    7
b    2
dtype: int64

利用标签的切片来选择多个元素时,切片“[起始标签:终止标签]”,如果没有终止标签,则默认最后一个标签

xse6=pd.Series([1,2,3,4,5,6,7],index=['a','b','c','z','e','h','d'])
se6['b':'d']
b    2
c    3
z    4
e    5
h    6
d    7
dtype: int64

4.给元素赋值

通过索引或标签选取元素后直接赋值。例如 se1[1]=1或sw2[‘a’]=0

5.Series对象的简单运算

(1)筛选元素

根据条件筛选数据结构中的元素。例如,筛选se1中大于3的元素

se1[se1>3]
1    4
3    7
dtype: int64

(算术运算和数学函数)

例如:se1*2 np.exp(se2)

6.Series对象之间的运算

series能够通过识别标签对齐不一致的数据。这就是series运算时的自动对齐功能

例如,将se1和se1[se1>3]相加:

se1+= se1[se1>3]
se1
0     NaN
1     8.0
2     NaN
3    14.0
dtype: float64

7.NaN

一般来讲,NaN表示数据有问题,必须对其进行处理,尤其是在数据分析时

8.统计Series对象的组成元素

(1)统计元素重复出现的次数

统计series对象包含多少个不同的元素,可使用unique()函数返回一个由Series去重后的元素所组成的数组,但是数组中元素的顺序不会自动排序

se=pd.Series([5,1,4,1,2,2])
se.unique()
array([5, 1, 4, 2], dtype=int64)

value_counts()函数,返回各个不同的元素,并计算每个元素在Series中出现的次数,运行的结果左边是元素,右边是元素出现的次数

se.value_counts()
1    2
2    2
4    1
5    1
dtype: int64

(2)判断元素是否存在

isin()函数可以判断给定的一列元素是否包含在Series数据结构中,在则返回True,不在则返回False,此函数可筛选Series或DataFrame列中的数据

se.isin([0,2])
0    False
1    False
2    False
3    False
4     True
5     True
dtype: bool
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TryBest_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值