——————Series的基础操作——————
1.导入库
>>> import pandas as pd
>>> import numpy as np
2.初步生成Series
>>> s1 = pd.Series([2,3,4,6],index = ['a','b','c','d'])#index是索引
>>> print(s1)
a 2
b 3
c 4
d 6
dtype: int64
>>> print(s1[1])
3
3.两个Series简单运算
>>> s2 = pd.Series([3,4,5,6],index = ['a','b','c','d'])
>>> print(s1 + s2)
a 5
b 7
c 9
d 12
dtype: int64
4.简单切片
>>> s3 = s1[0:2]
>>> print(s3)
a 2
b 3
dtype: int64
>>> s4 = s1[s1>5]
>>> print(s4)
d 6
dtype: int64
5.利用Series创建字典
>>> s5 = pd.Series({'a':1,'b':2})
>>> print(s5)
a 1
b 2
dtype: int64
6.对Series进行遍历
#对Series进行遍历的时候,输出值
>>> for i in s5:
print(i)
1
2
#分别获取键和值
>>> print(s5.index)
Index(['a', 'b'], dtype='object')
>>> print(s5.index[0])
a
>>> print(s5.values)
[1 2]
#关于整数索引
```python
>>> s6 = pd.Series(np.arange(20))
>>> print(s6)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
dtype: int32
>>> s7 = s6[10:].copy()
>>> print(s7)
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
dtype: int32
>>> print(s7[10])#默认为按键(标签)的方式
10
>>> print(s7[11])#print(s7[-1])会报错
11
#关于loc
#建议使用loc(按照标签)和iloc(按照索引index)来获取
>>> print(s7.loc[10])#解释为标签(键)
10
>>> print(s7.iloc[9])#解释为index(索引)
19
6.数据对齐
#pandas在进行两个Series对象的运算时,会按照索引进行对齐,然后计算
>>> s8 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s9 = pd.Series([11,20,10],index = ['d','c','a'])
>>> s10 = s8 + s9
>>> print(s10)
a 33
c 32
d 45
dtype: int64
#所以不用管排序的事情,只要标签相同,就可以运算了
#pandas的索引允许重复,但是一般设置为不重复的
>>> s11 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s12 = pd.Series([11,20,10,20],index = ['d','c','a','b'])
>>> s13 = s11 + s12
>>> print(s13)
a 33.0
b NaN
c 32.0
d 45.0
dtype: float64
7.简单处理缺失值
>>> s11 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s12 = pd.Series([11,20,10],index = ['c','a','b'])
>>> s13 = s12.add(s11)#使用add()和 + 的效果一样,但是我们可以在使用add()时加一个参数
>>> print(s13)
a 43.0
b NaN
c 23.0
d NaN
dtype: float64
#加入参数后
>>> s13 = s12.add(s11,fill_value = 0)
>>> print(s13)
a 43.0
b 10.0
c 23.0
d 34.0
dtype: float64
#判断是否有缺失数据
>>> s11 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s12 = pd.Series([11,20,10],index = ['c','a','b'])
>>> s13 = s12.add(s11)
>>> print(s13.isnull())
a False
b True
c False
d True
dtype: bool
#进行布尔运算
>>> s14 = s13[s13.notnull()]
>>> print(s14)
a 43.0
c 23.0
dtype: float64
#扔掉缺失值
>>> s11 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s12 = pd.Series([11,20,10],index = ['c','a','b'])
>>> s13 = s12.add(s11)
>>> s15 = s13.dropna()
>>> print(s15)
a 43.0
c 23.0
dtype: float64
#给缺失值赋值
>>> s11 = pd.Series([12,23,34],index = ['c','a','d'])
>>> s12 = pd.Series([11,20,10],index = ['c','a','b'])
>>> s13 = s12.add(s11)
>>> s16 = s13.fillna(0)
>>> print(s16)
a 43.0
b 0.0
c 23.0
d 0.0
dtype: float64
#为了不影响数据的总体趋势,可以填充为平均值
>>> s17 = s13.fillna(s13.mean())
>>> print(s17)
a 43.0
b 33.0
c 23.0
d 33.0
dtype: float64