对Series的理解也源于对其相关的代码操作,本次仅贴一些代码来加深理解以及记忆
1 import pandas as pd
2 import numpy as np
3 s = pd.Series(np.random.randn(5),index=['a','b','c','d','e']) # index添加行索引
4 s
5 # 输出
6 a 1.752127
7 b 0.127374
8 c 0.581114
9 d 0.466064
10 e -1.493042
11 dtype: float64
12
13 s.index
14 # 输出 Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
15
16 s = pd.Series(np.random.randn(5)) # 自动添加索引
17 s
18 # 输出
19 0 0.209798
20 1 0.791759
21 2 -1.352022
22 3 0.164453
23 4 0.647989
24 dtype: float64
25
26 d = {'a':0.,'b':1.,'d':3} # Series通过字典形式创建表,字典中的键就被当成行索引
27 s = pd.Series(d, index=list('abcd')) # 没有的索引赋值为NaN
28 s
29 # 输出
30
31 Out[12]:
32 a 0.0
33 b 1.0
34 c NaN
35 d 3.0
36 dtype: float64
37
38 s = pd.Series(5,index=list('abcd')) # 每个索引对应的值相等
39 s
40 #输出
41 a 5
42 b 5
43 c 5
44 d 5
45 dtype: int64
46
47 s = pd.Series(np.random.randn(5)) # 通过随机数创建
48 s
49 #输出
50 0 -0.014250
51 1 0.990860
52 2 1.785053
53 3 -2.155324
54 4 -0.815233
55 dtype: float64
56
57 s[0] # 可以通过单个索引值读取对应的值
58 #输出 -0.014250144041201129
59
60 s[:3] # 可以通过索引范围读取对应的范围值
61 # 输出
62 0 -0.014250
63 1 0.990860
64 2 1.785053
65 dtype: float64
66
67 s[[1,3,4]] # 任意读取多个索引对应的值需要两对[[]]
68 # 输出
69 1 0.990860
70 3 -2.155324
71 4 -0.815233
72 dtype: float64
73
74 np.sin(s) # 可以用numpy函数对Series创建的表中的数据进行一系列操作
75 # 输出
76 0 -0.014250
77 1 0.836498
78 2 0.977135
79 3 -0.833973
80 4 -0.727885
81 dtype: float64
82
83 s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'])
84 s
85 #输出
86 a 1.127395
87 b 0.229895
88 c 0.161001
89 d 0.362886
90 e 0.203692
91 dtype: float64
92
93 s['a'] # 索引也可以是字符字符串
94 # 输出 1.1273946030373316
95
96 s['b']= 3 # 可以通过索引赋值操作改变表中的值
97 s
98 # 输出
99 a 1.127395
100 b 3.000000
101 c 0.161001
102 d 0.362886
103 e 0.203692
104 dtype: float64
105
106 s['g'] = 100 # 如果表中没有那个索引,通过索引的赋值将会自动添加到表的行尾
107 s
108 # 输出
109 a 1.127395
110 b 3.000000
111 c 0.161001
112 d 0.362886
113 e 0.203692
114 g 100.000000
115 dtype: float64
116
117 print(s.get('f')) # 也可以使用get函数读取索引对应的值,如果没有就返回默认的None
118 # 输出 None
119
120 print (s.get('f',0)) # 也可以加自定义值的返回值
121 # 输出 0
122
123 s1 = pd.Series(np.random.randn(3),index=['a','c','e'])
124 s2 = pd.Series(np.random.randn(3),index=['a','d','e'])
125 print(f'{s1}\n\n{s2}')
126 # 输出
127 a -0.036147
128 c -1.466236
129 e -0.649153
130 dtype: float64
131
132 a 1.460091
133 d -0.788388
134 e 0.175337
135 dtype: float64
136
137 s1 + s2 # 通过Series创建的表也可以按照行相同索引对应的值相加,如果两表索引对应
138 # 不上就默认赋值NaN
139 # 输出
140 a 1.423945
141 c NaN
142 d NaN
143 e -0.473816
144 dtype: float64