我是靠谱客的博主 懵懂黑夜,这篇文章主要介绍【Python数据分析基础笔记(仅供本人学习记录)】P1.Series对象及常用操作7.1 pandas的导入方法:7.2pandas的数据结构,现在分享给大家,希望可以做个参考。

7.1 pandas的导入方法:

复制代码
1
2
import pandas as pd 或者 from pandas ipmort *
复制代码
1
2
3
4
5
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对象中的数据一数组形式传入,例如:
复制代码
1
2
se1 = pd.Series([2,4,-3,7])

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

复制代码
1
2
se1
复制代码
1
2
3
4
5
6
7
8
9
10
0 2 1 4 2 -3 3 7 dtype: int64

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

复制代码
1
2
3
se2=pd.Series([2,4,-3,7],index=['b','c','a','d']) se2
复制代码
1
2
3
4
5
6
7
8
9
10
b 2 c 4 a -3 d 7 dtype: int64

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

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

复制代码
1
2
arr=np.array([2,3,4,5])
复制代码
1
2
se3=pd.Series(arr)
复制代码
1
2
se3
复制代码
1
2
3
4
5
6
7
8
9
10
0 2 1 3 2 4 3 5 dtype: int32

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

复制代码
1
2
se4=pd.Series(se2)
复制代码
1
2
se4
复制代码
1
2
3
4
5
6
7
8
9
10
b 2 c 4 a -3 d 7 dtype: int64

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

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

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

复制代码
1
2
s_data={'电话':15696663527,'年龄':19,'exam':90}
复制代码
1
2
se5=pd.Series(s_data)
复制代码
1
2
se5
复制代码
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
2
se1[0:3]
复制代码
1
2
3
4
5
6
7
8
0 2 1 4 2 -3 dtype: int64

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

复制代码
1
2
se2[['a','d','b']]
复制代码
1
2
3
4
5
6
7
8
a -3 d 7 b 2 dtype: int64

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

复制代码
1
2
xse6=pd.Series([1,2,3,4,5,6,7],index=['a','b','c','z','e','h','d'])
复制代码
1
2
se6['b':'d']
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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的元素

复制代码
1
2
se1[se1>3]
复制代码
1
2
3
4
5
6
1 4 3 7 dtype: int64

(算术运算和数学函数)

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

6.Series对象之间的运算

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

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

复制代码
1
2
se1+= se1[se1>3]
复制代码
1
2
se1
复制代码
1
2
3
4
5
6
7
8
9
10
0 NaN 1 8.0 2 NaN 3 14.0 dtype: float64

7.NaN

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

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

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

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

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

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

复制代码
1
2
se.value_counts()
复制代码
1
2
3
4
5
6
7
8
9
10
1 2 2 2 4 1 5 1 dtype: int64

(2)判断元素是否存在

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

复制代码
1
2
se.isin([0,2])
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0 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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部