import pandas as pd
'''
Series序列:
1.序列 的声明,指定index列标签
2.查看列索引(index)和元素 (values)
3.选择内部元素
4.为元素赋值
5.用Numpy数组定义新Series对象
6.筛选元素
7.Series对象运算和数学函数
8.Series组成元素(重复,是否存在)
9.NaN
10.Series用做字典
'''
### 1.声明Series,并指定索引(没指定:索引从0开始自动递增)
series_define = pd.Series([2,3,3,4,6,8],index=['a','b','c','d','e','f'])
print(series_define)
'''
a 2
b 3
c 3
d 4
e 6
f 8
dtype: int64
'''
Series序列声明,指定索引index=### 2.查看Series序列的索引和元素【返回两个数组】
series_index = series_define.index
series_value = series_define.values
print(series_index)
print(series_value)
'''
Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')
[2 3 3 4 6 8]
'''
查看Series序列的索引和元素【.index .values返回两个数组】### 3.选择内部元素:切片或指定标签
print(series_define[-1])
print(series_define[4:-1])
print(series_define['f'])
print(series_define[['e','f']]) ###通过标签取多个值时,要把标签放在数组中
选择内部元素:切片或指定标签### 4.为元素赋值:选取元素 = 赋值
series_define[0] = 66
series_define['b'] = 77
print(series_define)
'''
a 66
b 77
c 3
d 4
e 6
f 8
dtype: int64
'''
为元素赋值:选取元素 = 赋值### 5.现有数组生成Series
arr = np.array([1,2,3,4])
s = pd.Series(arr)
print(s)
'''
0 1
1 2
2 3
3 4
dtype: int32
'''
现有数组生成Series### 6.筛选元素:获取大于3的元素 s[s>3]
print(s[s>3])
筛选元素:获取大于3的元素 s[s>3]### 7.适用于Numpy数组的运算符(+ - * /) 和 np.log()等数学函数都适用
#相除
s1 = series_define/2
print(s1)
'''
a 33.0
b 38.5
c 1.5
d 2.0
e 3.0
f 4.0
dtype: float64
'''
#取对
s2 = np.log(series_define)
print(s2)
'''
a 4.189655
b 4.343805
c 1.098612
d 1.386294
e 1.791759
f 2.079442
dtype: float64
'''
Series:数学函数np.log(s)运算## 8.重复次数和判断是否存在
# .unique()去重(不重复的元素,返回value数组)
s_a = pd.Series([1,1,1,1,2,2,2,3])
a = s_a.unique()
print(a)
'''
[1 2 3]
'''
# .value_counts() 返回去重后的元素,并且统计出现的次数:返回Series,出现个数作为值
b = s_a.value_counts()
print(b)
print(b[1])
# .isin()判断是否存在(返回布尔值)
c = s_a.isin([2,3])
print(c)
c1 = s_a[s_a.isin([2,3])]
print(c)
print(c1)
'''
0 False
1 False
2 False
3 False
4 True
5 True
6 True
7 True
dtype: bool
0 False
1 False
2 False
3 False
4 True
5 True
6 True
7 True
dtype: bool
4 2
5 2
6 2
7 3
dtype: int64
'''
重复次数和判断是否存在