好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Data Science | Pandas基础(二)

前文导读

Data Science | Numpy基础(一)

Data Science | Numpy基础(二)

Data Science | 福利列表 | Numpy基础(三)

Data Science | Pandas基础(一)

Pandas数据结构Series-基本技巧 数据查看
 #查看前五的数据 s = pd.Series(np.random.rand(15)) print(s.head())   #默认查看数据前五条 # 查看后5条数据 print(s.tail())   #默认查看数据的后五条 # 查看前10条数据 print(s.head(10))  
重新索引

重新索引的作用是根据新的索引重新排序,若新的索引不存在则引入缺失值。

 # .reindex将会根据索引重新排序,如果当前索引不存在,则引入缺失值 s = pd.Series(np.random.rand(5),index=['a','b','c','d','e']) print(s) # 将索引值修改为['c','d','a','f'] s1 =  s.reindex(['c','d','a','f']) print(s1) >>> a    0.972218 b    0.820531 c    0.940448 d    0.009572 e    0.462811 dtype: float64 c    0.940448 d    0.009572 a    0.972218 f         NaN dtype: float64  

如果不想引入缺失值可以使用 fill_value 指定不存在的索引值为0或其他值

 s2 = s.reindex(['c','d','a','f','aaaaa'], fill_value=0) print(s2) >>> c        0.940448 d        0.009572 a        0.972218 f        0.000000 aaaaa    0.000000 dtype: float64  
数据对齐

对齐两列数据,当数据索引不同时存在需要对齐的Series的时,数据值以缺失值填充。

 # Series 和 ndarray 之间的主要区别是,Series 上的操作会根据标签自动对齐 # index顺序不会影响数值计算,以标签来计算 # 空值和任何值计算结果扔为空值 s1 = pd.Series(np.random.rand(3),index=['jack','marry','tom']) s2 = pd.Series(np.random.rand(3),index=['wang','jack','marry']) print(s1+s2) >>> jack     1.261341 marry    0.806095 tom           NaN wang          NaN dtype: float64  
删除

使用 .drop 删除元素的时候,默认返回的是一个副本(inplace=False)

 s = pd.Series(np.random.rand(5), index = list('ngjur')) print(s) s1 = s.drop('n') s2 = s.drop(['g','j']) print(s1) print(s2) print(s) >>> n    0.876587 g    0.594053 j    0.628232 u    0.360634 r    0.454483 dtype: float64 g    0.594053 j    0.628232 u    0.360634 r    0.454483 dtype: float64 n    0.876587 u    0.360634 r    0.454483 dtype: float64 n    0.876587 g    0.594053 j    0.628232 u    0.360634 r    0.454483 dtype: float64  
添加

方法一:直接通过下标索引/标签index添加值

 s1 = pd.Series(np.random.rand(5)) s2 = pd.Series(np.random.rand(5), index = list('ngjur')) print(s1) print(s2) s1[5] = 100 s2['a'] = 100 print(s1) print(s2) >>> 0    0.516447 1    0.699382 2    0.469513 3    0.589821 4    0.402188 dtype: float64 n    0.615641 g    0.451192 j    0.022328 u    0.977568 r    0.902041 dtype: float64 0      0.516447 1      0.699382 2      0.469513 3      0.589821 4      0.402188 5    100.000000 dtype: float64 n      0.615641 g      0.451192 j      0.022328 u      0.977568 r      0.902041 a    100.000000 dtype: float64  

方法二:使用 .append() 方法添加,可以直接添加一个数组,且生成一个新的数组,不改变之前的数组。

 s3 = s1.append(s2) print(s3) print(s1) >>> 0      0.238541 1      0.843671 2      0.452739 3      0.312212 4      0.878904 5    100.000000 n      0.135774 g      0.530755 j      0.886315 u      0.512223 r      0.551555 a    100.000000 dtype: float64 0      0.238541 1      0.843671 2      0.452739 3      0.312212 4      0.878904 5    100.000000 dtype: float64  
修改

series可以通过索引直接修改,类似序列

 s = pd.Series(np.random.rand(3), index = ['a','b','c']) print(s) s['a'] = 100 s[['b','c']] = 200 print(s) >>> a    0.873604 b    0.244707 c    0.888685 dtype: float64 a    100.0 b    200.0 c    200.0 dtype: float64  
巩固练习

如图创建Series,并按照要求修改得到结果

已有s1,s2(值为0-10的随机数),请求出s1+s2的值

回复 「作业」 查看答案

咸鱼普拉思

一只咸鱼在编程路上的摸爬滚打,记录摸索中的点点滴滴。

查看更多关于Data Science | Pandas基础(二)的详细内容...

  阅读:28次