Pandas-数据结构&基本操作
数据结构
Series
Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。
Series的创建与应用
指定内容,默认索引
a=pd.Series(np.arange(10)) print(a)
输出:
指定内容,指定索引
b=pd.Series([1.2,2.2,3.2,4.2],index=[1,2,3,4]) print(b) # 1 1.2 # 2 2.2 # 3 3.2 # 4 4.2 # dtype: float64
字典创建数据
c=pd.Series({"red":10,"green":20,"blue":30}) print(c) print(c.index) print(c.values) print(c[1]) # red 10 # green 20 # blue 30 # dtype: int64 # Index(['red', 'green', 'blue'], dtype='object') # [10 20 30] # 20
DataFrame
DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引
- 行索引,表明不同行,横向索引,叫index,0轴,axis=0
- 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1
DataFrame的创建与应用
a=pd.DataFrame(np.random.randn(2,3)) print(a) # 0 1 2 # 0 -1.628378 -1.574723 0.414543 # 1 -1.753412 2.216918 0.120283 score=np.random.randint(40,100,(10,5)) print(score) # [[96 68 72 66 44] # [70 56 76 51 65] # [86 41 94 77 92] # [94 99 80 91 67] # [90 88 46 65 73] # [79 52 70 50 77] # [46 71 47 97 78] # [53 57 84 59 88] # [44 79 78 78 92] # [62 65 86 90 78]]
增加行列索引
# # 构造行索引序列 subjects = ["语文", "数学", "英语", "政治", "体育"] stu=["同学"+str(i) for i in range(score.shape[0])] data=pd.DataFrame(score,columns=subjects,index=stu) print(data) # 语文 数学 英语 政治 体育 # 同学0 96 68 72 66 44 # 同学1 70 56 76 51 65 # 同学2 86 41 94 77 92 # 同学3 94 99 80 91 67 # 同学4 90 88 46 65 73 # 同学5 79 52 70 50 77 # 同学6 46 71 47 97 78 # 同学7 53 57 84 59 88 # 同学8 44 79 78 78 92 # 同学9 62 65 86 90 78
其他操作
#显示前5行数据 print(data.head(5)) #显示后5行数据 print(data.tail(5)) #显示行索引 print(data.index) # #显示列索引 print(data.columns) # #显示具体的value值 print(data.values) # #显示数据的转置T print(data.T) # #重设索引,保留之前的索引为index print(data.reset_index()) # #重设索引,删除之前的索引 print(data.reset_index(drop=True)) # #修改行索引值 stu=["同学_"+str(i) for i in range(score.shape[0])] data.index=stu print(data) # #设置某列值为新的索引 df = pd.DataFrame({'month': [1, 4, 7, 10], 'year': [2012, 2014, 2013, 2014], 'sale':[55, 40, 84, 31]}) print(df) print(df.set_index("year")) print(df.set_index(["year","month"]))
输出:
Index(['同学0', '同学1', '同学2', '同学3', '同学4', '同学5', '同学6', '同学7', '同学8', '同学9'], dtype='object') Index(['语文', '数学', '英语', '政治', '体育'], dtype='object') [[96 68 72 66 44] [70 56 76 51 65] [86 41 94 77 92] [94 99 80 91 67] [90 88 46 65 73] [79 52 70 50 77] [46 71 47 97 78] [53 57 84 59 88] [44 79 78 78 92] [62 65 86 90 78]] 同学0 同学1 同学2 同学3 同学4 同学5 同学6 同学7 同学8 同学9 语文 96 70 86 94 90 79 46 53 44 62 数学 68 56 41 99 88 52 71 57 79 65 英语 72 76 94 80 46 70 47 84 78 86 政治 66 51 77 91 65 50 97 59 78 90 体育 44 65 92 67 73 77 78 88 92 78 index 语文 数学 英语 政治 体育 0 同学0 96 68 72 66 44 1 同学1 70 56 76 51 65 2 同学2 86 41 94 77 92 3 同学3 94 99 80 91 67 4 同学4 90 88 46 65 73 5 同学5 79 52 70 50 77 6 同学6 46 71 47 97 78 7 同学7 53 57 84 59 88 8 同学8 44 79 78 78 92 9 同学9 62 65 86 90 78 语文 数学 英语 政治 体育 0 96 68 72 66 44 1 70 56 76 51 65 2 86 41 94 77 92 3 94 99 80 91 67 4 90 88 46 65 73 5 79 52 70 50 77 6 46 71 47 97 78 7 53 57 84 59 88 8 44 79 78 78 92 9 62 65 86 90 78 语文 数学 英语 政治 体育 同学_0 96 68 72 66 44 同学_1 70 56 76 51 65 同学_2 86 41 94 77 92 同学_3 94 99 80 91 67 同学_4 90 88 46 65 73 同学_5 79 52 70 50 77 同学_6 46 71 47 97 78 同学_7 53 57 84 59 88 同学_8 44 79 78 78 92 同学_9 62 65 86 90 78 month year sale 0 1 2012 55 1 4 2014 40 2 7 2013 84 3 10 2014 31 month sale year 2012 1 55 2014 4 40 2013 7 84 2014 10 31 sale year month 2012 1 55 2014 4 40 2013 7 84 2014 10 31