Pandas库
pandas学习中文文档
1 """ 2 pandas模块的简单使用 3 """ 4 import pandas as pd# pip install pandas 5 from pandas import Series,DataFrame 6 import numpy as np 7 8 #向excel表格中写入数据 9 # df=DataFrame(data=np.random.randint(0,100,size=(10,10))) 10 # df.to_excel('test.xls') 11 12 13 #Series一维数组 14 15 #一维数组创建 16 data=Series(data=[1,2,3,5,7]) 17 print(data) 18 19 #一维数组创建,指定索引 20 data=Series(data=[1,2,3,5,7],index=['a','b','c','d','e']) 21 print(data) 22 23 #unmpy随机生成数据 24 data=Series(data=np.random.randint(0,10,size=(5,)),index=['a','b','c','d','e']) 25 print(data) 26 27 28 """ 29 练习1: 30 31 使用多种方法创建以下Series,命名为s1: 32 语文 150 33 数学 150 34 英语 150 35 理综 300 36 """ 37 data=Series({"语文":150,"数学":150,"英语":150,"理综":300}) 38 print(data) 39 data=Series(data=[150,150,150,300],index=["语文","数学","英语","理综"]) 40 print(data) 41 data=Series(data=[150,150,150,300]) 42 data.index=["语文","数学","英语","理综"] 43 print(data) 44 45 #从前或从后读取,默认5行 46 df=pd.read_excel("test.xls") 47 print(df.head()) 48 print(df.head(2)) 49 print(df.tail()) 50 print(df.tail(2)) 51 52 53 #去重 54 s=Series(data=[1,3,5,6,7,6,7]) 55 print(s) 56 print(s.unique()) 57 58 59 #series相加操作(与NaN数学运算还是NaN) 60 s1=Series(data=[1,3,5,6],index=['a','b','c','d']) 61 s2=Series(data=[2,3,5,6],index=['a','b','e','d']) 62 print(s1+s2) 63 64 65 #检测数据是否缺失 66 s3=s1+s2 67 print(s3.isnull()) 68 print(s3.notnull()) 69 70 71 72 #bool值当索引,只去为真的数据 73 print(s3[[True,True,False,True,False]]) 74 75 76 77 78 #DataFrame二维数组:行索引index,列索引columns,值values 79 80 #不指定索引 81 data=DataFrame(np.random.randint(0,10,size=(3,4))) 82 print(data) 83 #指定行索引 84 data=DataFrame(np.random.randint(0,10,size=(3,4)),index=['a','b','c']) 85 print(data) 86 #指定列索引 87 data=DataFrame(np.random.randint(0,10,size=(3,4)),columns=['A','B','C','D']) 88 print(data) 89 #指定行、列索引 90 data=DataFrame(np.random.randint(0,10,size=(3,4)),index=['a','b','c'],columns=['A','B','C','D']) 91 print(data) 92 93 94 #获取二维数组的值 95 print(data.values) 96 97 #获取二维数组的行索引 98 print(data.index) 99 100 #获取二位数组的列索引 101 print(data.columns) 102 103 #获取二维数组的形状 104 print(data.shape) 105 106 #获取二维数组的大小 107 print(data.size) 108 109 """ 110 练习4: 111 112 根据以下考试成绩表,创建一个DataFrame,命名为df: 113 114 张三 李四 115 语文 150 0 116 数学 150 0 117 英语 150 0 118 理综 300 0 119 """ 120 121 df=DataFrame(data={"张三":[150,150,150,300],"李四":[0,0,0,0]},index=["语文","数学","英语","理综"]) 122 print(df) 123 124 #索引切片 125 data=DataFrame(np.random.randint(0,10,size=(3,4)),index=['A','B','C'],columns=['a','b','c','d']) 126 print(data) 127 128 #修改列索引 129 data.columns=['b','c','d','e'] 130 print(data) 131 132 #修改行索引 133 data.index=['A','B','E'] 134 print(data) 135 136 137 #获取某一列 138 print(data['d']) 139 #获取前两列 140 print(data[['b','c']]) 141 142 143 #获取行 144 print(data.iloc[0])#iloc整数索引获取行 145 print(data.loc['A'])#loc显式索引获取行 146 print(data.loc[['A','B']])#loc显式索引获取多行 147 148 #获取指定行列 149 print(data.iloc[1,2])#获取第2行第3列 150 print(data.iloc[[0,1],2])#获取第1行和第2行的第3列 151 152 #切片 153 154 #行切片 155 print(data[:1])#切片取第1行 156 print(data.iloc[:,0:1])#切片取所有行第1列