7.1 pandas的导入方法:
1
2import pandas as pd 或者 from pandas ipmort *
1
2
3
4
5import 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对象中的数据一数组形式传入,例如:
1
2se1 = pd.Series([2,4,-3,7])
左边是标签,右边是标签对应的元素
1
2se1
1
2
3
4
5
6
7
8
9
100 2 1 4 2 -3 3 7 dtype: int64
声明series时,若不指定标签,则默认使用从0开始依次递增作为标签;如果想对数据使用特殊意义的标签,需指定index选项,把存有标签的数组赋值给index,例如:
1
2
3se2=pd.Series([2,4,-3,7],index=['b','c','a','d']) se2
1
2
3
4
5
6
7
8
9
10b 2 c 4 a -3 d 7 dtype: int64
(2)用Numpy数组或其他series对象定义新的series对象
1).用数组定义新的series对象,代码如下:
1
2arr=np.array([2,3,4,5])
1
2se3=pd.Series(arr)
1
2se3
1
2
3
4
5
6
7
8
9
100 2 1 3 2 4 3 5 dtype: int32
2)用其他series对象定义新的series对象,命令如下
1
2se4=pd.Series(se2)
1
2se4
1
2
3
4
5
6
7
8
9
10b 2 c 4 a -3 d 7 dtype: int64
这两种方式的对象都是动态插入的,原有对象的值发生变化,新series对象中这些元素也会发生变化
(3)将字典转换为series对象
字典中的一个键与值的映射关系,可以看做是series对象中的索引值到数据值的一个映射,因此,可以将字典直接转化为series对象
1
2s_data={'电话':15696663527,'年龄':19,'exam':90}
1
2se5=pd.Series(s_data)
1
2se5
1
2
3
4
5
6
7
8电话 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)选择多个元素
通过切片来选择多个元素,切片“[起始值:终止值:步长]”,如果没有终止值,则默认终止值为最后一个索引
1
2se1[0:3]
1
2
3
4
5
6
7
80 2 1 4 2 -3 dtype: int64
或者可以使用元素对应的标签,需把标签放入数组中
1
2se2[['a','d','b']]
1
2
3
4
5
6
7
8a -3 d 7 b 2 dtype: int64
利用标签的切片来选择多个元素时,切片“[起始标签:终止标签]”,如果没有终止标签,则默认最后一个标签
1
2xse6=pd.Series([1,2,3,4,5,6,7],index=['a','b','c','z','e','h','d'])
1
2se6['b':'d']
1
2
3
4
5
6
7
8
9
10
11
12
13
14b 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的元素
1
2se1[se1>3]
1
2
3
4
5
61 4 3 7 dtype: int64
(算术运算和数学函数)
例如:se1*2 np.exp(se2)
6.Series对象之间的运算
series能够通过识别标签对齐不一致的数据。这就是series运算时的自动对齐功能
例如,将se1和se1[se1>3]相加:
1
2se1+= se1[se1>3]
1
2se1
1
2
3
4
5
6
7
8
9
100 NaN 1 8.0 2 NaN 3 14.0 dtype: float64
7.NaN
一般来讲,NaN表示数据有问题,必须对其进行处理,尤其是在数据分析时
8.统计Series对象的组成元素
(1)统计元素重复出现的次数
统计series对象包含多少个不同的元素,可使用unique()函数返回一个由Series去重后的元素所组成的数组,但是数组中元素的顺序不会自动排序
1
2se=pd.Series([5,1,4,1,2,2])
1
2se.unique()
1
2array([5, 1, 4, 2], dtype=int64)
value_counts()函数,返回各个不同的元素,并计算每个元素在Series中出现的次数,运行的结果左边是元素,右边是元素出现的次数
1
2se.value_counts()
1
2
3
4
5
6
7
8
9
101 2 2 2 4 1 5 1 dtype: int64
(2)判断元素是否存在
isin()函数可以判断给定的一列元素是否包含在Series数据结构中,在则返回True,不在则返回False,此函数可筛选Series或DataFrame列中的数据
1
2se.isin([0,2])
1
2
3
4
5
6
7
8
9
10
11
12
13
140 False 1 False 2 False 3 False 4 True 5 True dtype: bool
最后
以上就是懵懂黑夜最近收集整理的关于【Python数据分析基础笔记(仅供本人学习记录)】P1.Series对象及常用操作7.1 pandas的导入方法:7.2pandas的数据结构的全部内容,更多相关【Python数据分析基础笔记(仅供本人学习记录)】P1.Series对象及常用操作7.1内容请搜索靠谱客的其他文章。
发表评论 取消回复