1 # coding: utf-8 2 # Series 3 4 import pandas as pd 5 from pandas import Series, DataFrame 6 7 # Series 是一种一维的数组型对象,交互式环境中Series的字符串表示,索引在左边,值在右边。 8 obj = pd.Series([4, 7, -5, 3]) 9 obj 10 11 # 可以通过values属性和index属性获得Series对象的值好索引 12 obj.values 13 obj.index 14 15 # 要创建一个索引序列,用标签标识每个数据点 16 obj2 = pd.Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c']) 17 obj2 18 obj2.index 19 20 # 与numoy数组相比,在选择数据时候使用标签进行索引 21 obj2['a'] 22 obj2['d'] = 6 23 obj2[['c', 'a', 'd']] 24 25 # 使用numpy的的函数或numpy的风格操作,比如标量相乘等,这些操作保存索引值连接 26 obj2[obj2 > 0] 27 obj2 * 2 28 29 import numpy as np 30 np.exp(obj2) 31 # Series 可以认为是一个长度固定且有序的字典,在使用字典的上下文中也可以使用Series. 32 'b' in obj2 33 'e' in obj2 34 35 # 若已有数据包含在字典中,可以使用字典生成一根=个Series. 36 sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000} 37 obj3 = pd.Series(sdata) 38 obj3 39 40 # 当把字典传递给Series构造函数时,产生的Series的索引是排序好的字典键,可以将字典键按照你所想要的顺序传递给构造函数。 41 states = ['California', 'Ohio', 'Oregon', 'Texas'] 42 obj4 = pd.Series(sdata, index=states) 43 obj4 44 45 # pandas 中使用isnull 和 notnull函数来检查缺失数据 46 pd.isnull(obj4) 47 pd.notnull(obj4) 48 obj4.isnull() 49 50 # Series对象自身和其索引都有name属性 51 obj4.name = 'population' 52 obj4.index.name = 'state' 53 obj4 54 55 #Series的索引可以按位置赋值的方式进行改变 56 obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan'] 57 obj 58 59 ## DataFrame 60 # DataFrame 表示的是矩阵额数据表 61 # 构建DataFrame方式,最常用方式是利用包含等长度列表或numpy数组的字典来构建DataFrame 62 data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 63 'year': [2000, 2001, 2002, 2001, 2002, 2003], 64 'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]} 65 frame = pd.DataFrame(data) 66 frame 67 68 # 对于大型DataFrame ,head方法只选出头部的五行 69 frame.head() 70 71 # 如指定列的顺序,DataFrame将会按照指定顺序排列 72 pd.DataFrame(data, columns=['year', 'state', 'pop']) 73 74 # 若传的不包含在字典中,将会在结果中出现缺失值 75 frame2 = pd.DataFrame(data, columns=['year','state','pop','debt'], 76 index=['one', 'two', 'three', 'four', 'five', 'six']) 77 frame2 78 79 # DtaFrame 中的一列,可以按字典型标记或属性那样检索为Series 80 frame2['state'] 81 frame2.year 82 83 # 行也可以通过位置或特殊属性loc进行选取 84 frame2.loc['three'] 85 86 # 列的引用是可以修改的 87 frame2['debt'] = 16.5 88 frame2 89 frame2['debt'] = np.arange(6.) 90 frame2 91 92 #将列表或数组赋值给一个列时, 值的长度必须匹配。若将Series赋值给一列时, 93 #Series的索引会按照DataFrame的索引重新排列,并在空缺地方填充空缺值。 94 val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five']) 95 frame2['debt'] = val 96 frame2 97 98 # del关键字对DataFrame删除列,可以用于移除之前新建的列 99 frame2['eastern'] = frame2.state == 'Ohio' 100 frame2 101 102 del frame2['eastern'] 103 104 frame2.columns 105 106 # 另一种常用的数据形式是包含字典的嵌套字典 107 pop = {'Nevada': {2001: 2.4, 2002: 2.9}, 108 'Ohio': {2000: 1.5, 2001:1.7, 2002:3.6}} 109 # 嵌套字典赋值给DatsFrame, pandas会将字典的键作为列, 将内部字典的键作为行索引 110 frame3 = pd.DataFrame(pop) 111 frame3 112 113 # 进行转置操作 114 frame3.T 115 116 #如已经显式指明索引,内部字典的键将不会被排序 117 pd.DataFrame(pop, index=[2001, 2002, 2003]) 118 119 # 包含Series的字典也可以用于构造DataFrame 120 pdata = {'Ohio':frame3['Ohio'][:-1], 121 'Nevada':frame3['Nevada'][:2]} 122 pd.DataFrame(pdata) 123 124 # DaataFrame的索引和列拥有name属性 125 frame3.index.name = 'year';frame3.columns.name = 'state' 126 frame3 127 frame3.values 128 129 # 若列时不同的dtypes,则values的dtype会自动选择合适所有列的类型 130 frame2.values 131 132 # 索引对象 133 134 #pandas的索引对象用于存储轴标签和其他元数据,在构造Series和DataFrame时,所使用的任意数组和标签序列都可以在内部转换为索引对象 135 obj = pd.Series(range(3), index=['a', 'b','c']) 136 index = obj.index 137 index 138 139 # 索引对象是不可变的 140 index[1:]
参考书籍:利用 python 进行数据分析 (利用 jupyter notebook 运行代码)
作者:舟华520
出处:https://www.cnblogs.com/xfzh193/
本文以学习,分享,研究交流为主,欢迎转载,请标明作者出处!