Python数据分析 2-2 Series对象 其他 本实验主要介绍Series对象相关的操作,包括Series对象的结构、创建、数据索引和筛选、算术运算、数值统计等。 (2)

pandas 简介

*特点:
开源,免费,活跃
建立在NumPy的基础之上融合Matplotlib的可视化功能
围绕着Series和DataFrame展开,有强大的广播功能完善、强大的全流程数据分析功能
广泛应用在学术界、产业界等各个数据分析领域

功能:
导入导出 数据清洗 数据转换 数据抽离 数据融合
分组聚合 时间序列 分类数据 数据透视表 数据可视化*

1 引入NumPy和Pandas

import numpy as np
import pandas as pd

**2 Series 创建
Series是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。
调用 Pandas.Series() 函数即可创建 Series,主要参数如下:

data:序列中的数据
index:序列的索引
dtype:序列数据的类型
name:序列的名字**

# 创建方式一(列表,数组)
stus = ["Tom", "Jerry", "Jack"]
scores = [89, 67, 45]
name = "stu_scores"
s1 = pd.Series(data=scores, index=stus, dtype=int, name=name)
s1 
Tom      89
Jerry    67
Jack     45
Name: stu_scores, dtype: int32
# 创建方式二(字典):
pd.Series(data = {"name":"Tom", "age":18, "score":89})

name     Tom
age       18
score     89
dtype: object
# 创建方式三(标量):
pd.Series(data=5, index=list("abc"))
a    5
b    5
c    5
dtype: int64

3 Series 数据索引和筛选

s1 = pd.Series(data=range(10, 20))
s1
0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
#切片
s1[-7:5]         #正负索引相结合
3    13
4    14
dtype: int64
#条件筛选
s1[s1 > 15]      #输出大于15的数据
6    16
7    17
8    18
9    19
dtype: int64
#查看序列的逻辑表达式的值
s1 == 17  
0    False
1    False
2    False
3    False
4    False
5    False
6    False
7     True
8    False
9    False
dtype: bool
#条件筛选
s1[ 12 < s1]
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64
#查看序列数据类型
s1.dtype

dtype('int64')

**Series中常用属性和方法说明:

ndim:返回Series的维数
dtype:返回Series中元素的数据类型
size:返回Series中元素的个数
index:返回Series中的索引
value_counts():对Series中元素计数
mean(): 返回Serise中的元素求均值**

#查看序列的索引
s1.index

RangeIndex(start=0, stop=10, step=1)
##统计唯一值个数
s1.value_counts()

16    1
17    1
18    1
19    1
10    1
11    1
12    1
13    1
14    1
15    1
dtype: int64
#修改
s1[12] = 11        #序列s1中不存在索引为12的数据,故在原序列上增加新元素(不会报错)
s1
0     10
1     11
2     12
3     13
4     14
5     15
6     16
7     17
8     18
9     19
12    11
dtype: int64
#统计唯一值个数
s1.value_counts()
11    2
16    1
17    1
18    1
19    1
10    1
12    1
13    1
14    1
15    1
dtype: int64
#根据逻辑表达式进行条件索引
s1[s1 == 11]


1     11
12    11
dtype: int64
#均值
s1.mean()
14.181818181818182
#元素个数
s1.size
11

**4 Series 算术运算
Series算术运算可通过NumPy函数实现:

numpy.exp():返回e的幂次方
numpy.sqrt():返回元素的正平方根
numpy.power(x,y):返回x的y次方**

#计算Series对象的e次幂
np.exp(s1) 
0     2.202647e+04
1     5.987414e+04
2     1.627548e+05
3     4.424134e+05
4     1.202604e+06
5     3.269017e+06
6     8.886111e+06
7     2.415495e+07
8     6.565997e+07
9     1.784823e+08
12    5.987414e+04
dtype: float64
#计算Series对象的正平方根
np.sqrt(s1)
0     3.162278
1     3.316625
2     3.464102
3     3.605551
4     3.741657
5     3.872983
6     4.000000
7     4.123106
8     4.242641
9     4.358899
12    3.316625
dtype: float64
#计算Series对象的1/2次幂 
np.power(s1, 1/2) 
0     3.162278
1     3.316625
2     3.464102
3     3.605551
4     3.741657
5     3.872983
6     4.000000
7     4.123106
8     4.242641
9     4.358899
12    3.316625
dtype: float64

5 唯一值个数统计

s1
0     10
1     11
2     12
3     13
4     14
5     15
6     16
7     17
8     18
9     19
12    11
dtype: int64
#查看唯一值
s1.unique() 
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype=int64)
#统计唯一值个数
s1.value_counts()
11    2
16    1
17    1
18    1
19    1
10    1
12    1
13    1
14    1
15    1
dtype: int64
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值