pandas
1 2 3 | import pandas as pd from pandas import Series,DataFrame import numpy as np |
1 2 3 4 5 6 7 8 9 10 11 | 1、Series Series是一种类似与一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index:相关的数据索引标签 1)Series的创建 两种创建方式: (1) 由列表或numpy数组创建 默认索引为0到N-1的整数型索引 |
1 2 3 4 5 6 7 8 9 | 2)Series的索引和切片 可以使用中括号取单个索引(此时返回的是元素类型),或者中括号里一个列表取多个索引(此时返回的是一个Series类型)。 (1) 显式索引: - 使用index中的元素作为索引值 - 使用s.loc[](推荐):注意,loc中括号中放置的一定是显示索引 注意,此时是闭区间- 使用整数作为索引值 - 使用.iloc[](推荐):iloc中的中括号中必须放置隐式索引 |
(2) 隐式索引:
注意,此时是半开区间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | DataFrame DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。 行索引:index 列索引:columns 值:values 1)DataFrame的创建 最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。 此外,DataFrame会自动加上每一行的索引。 使用字典创建的DataFrame后,则columns参数将不可被使用。 同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。 使用ndarray创建DataFrame DataFrame(data=np.random.randint(0,100,size=(5,6))) 0 1 2 3 4 5 0 32 93 0 23 21 40 1 27 35 9 76 41 68 2 63 96 63 30 96 51 3 2 50 28 26 26 41 4 32 74 97 84 56 7 DataFrame属性:values、columns、index、shape df df.values array([[77, 67], [88, 88], [99, 99], [90, 78]], dtype=int64) df.index Index([ '语文' , '数学' , '英语' , '理综' ], dtype= 'object' ) 使用ndarray创建DataFrame:创建一个表格用于展示张三,李四,王五的java,python的成绩 '语文' , '数学' , '英语' , '理综' dic = { '张三' :[77,88,99,90], '李四' :[67,88,99,78] } df = DataFrame(data=dic,index=[ '语文' , '数学' , '英语' , '理综' ]) df 张三 李四 语文 77 67 数学 88 88 英语 99 99 理综 90 78 ============================================ 张三 李四 语文 150 0 数学 150 0 英语 150 0 理综 300 0 ============================================ 2)DataFrame的索引 (1) 对列进行索引 - 通过类似字典的方式 df[ 'q' ] - 通过属性的方式 df.q 可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。 df 张三 李四 语文 77 67 数学 88 88 英语 99 99 理综 90 78 df[ '张三' ] 语文 77 数学 88 英语 99 理综 90 Name: 张三, dtype: int64 df.张三 语文 77 数学 88 英语 99 理综 90 Name: 张三, dtype: int64 df[[ '李四' , '张三' ]] df[[ '李四' , '张三' ]] 李四 张三 语文 67 77 数学 88 88 英语 99 99 理综 78 90 #修改列索引 df.columns = [ 'zhangsan' , 'lisi' ] df zhangsan lisi 语文 77 67 数学 88 88 英语 99 99 理综 90 78 (2) 对行进行索引 - 使用.loc[]加index来进行行索引 - 使用.iloc[]加整数来进行行索引 同样返回一个Series,index为原来的columns。 df.iloc[[0,1]] zhangsan lisi 语文 77 67 数学 88 88 (3) 对元素索引的方法 - 使用列索引 - 使用行索引(iloc[3,1] or loc[ 'C' , 'q' ]) 行索引在前,列索引在后 df.iloc[0,1] 67 切片: 【注意】 直接用中括号时: 索引表示的是列索引 切片表示的是行切片 df[0:2] zhangsan lisi 语文 77 67 数学 88 88 在loc和iloc中使用切片(切列) : df.loc[ 'B' : 'C' , '丙' : '丁' ] df.iloc[:,0:1] zhangsan 语文 77 数学 88 英语 99 理综 90 3)DataFrame的运算 (1) DataFrame之间的运算 同Series一样: 在运算中自动对齐不同索引的数据 如果索引不对应,则补NaN 创建DataFrame df1 不同人员的各科目成绩,月考一 创建DataFrame df2 不同人员的各科目成绩,月考二 df zhangsan lisi 语文 87 177 数学 10 198 英语 109 209 理综 100 188 df.loc[ '数学' , 'zhangsan' ] = 0 df[ 'lisi' ] += 100 df += 10 df += 10 (df+df)/2 zhangsan lisi 语文 77 67 数学 88 88 英语 99 99 理综 90 78 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步