机器学习pandas数据结构之Series笔记

扶醉桌前 提交于 2019-11-28 06:25:49

对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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!