组队学习介绍
最近事情太多(以及人太懒),好久没有空更新博客,遂报名公众号Datawhale的Pandas学习小组来督促自己学习。学习小组的目的主要是细致地学习Python中的第三方模块Pandas,该模块用于数据导入及整理的模块,对数据挖掘前期数据的处理工作十分有用。
学习小组的时间安排大致如下:
-
Task01:Pandas基础(1天)
-
Task02:索引(3天)
-
Task03:分组(2天)
-
Task04:变形(2天)
-
Task05:合并(2天)
-
Task06:综合练习(1天)
学习小组的参考资料是Datawhale-GYH助教撰写的1。
本博文的笔记概览如下所示:
![](https://img-blog.csdnimg.cn/20200422103019626.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1bnNpbWlhb2Zyb21zaA==,size_16,color_FFFFFF,t_70#pic_center)
导入数据:
import numpy as np
import pandas as pd
# 规定路径
path = '/Users/sunsimiao/Documents/2020自学/202004组队学Pandas/joyful-pandas-master/data/'
df = pd.read_csv(path+'table.csv',index_col='ID')
df
ID School Class Gender Address Height Weight Math Physics
1101 S_1 C_1 M street_1 173 63 34.0 A+
1102 S_1 C_1 F street_2 192 73 32.5 B+
1103 S_1 C_1 M street_2 186 82 87.2 B+
1104 S_1 C_1 F street_2 167 81 80.4 B-
1105 S_1 C_1 F street_4 159 64 84.8 B+
1201 S_1 C_2 M street_5 188 68 97.0 A-
1202 S_1 C_2 F street_4 176 94 63.5 B-
1203 S_1 C_2 M street_6 160 53 58.8 A+
1204 S_1 C_2 F street_5 162 63 33.8 B
1205 S_1 C_2 F street_6 167 63 68.4 B-
1301 S_1 C_3 M street_4 161 68 31.5 B+
1302 S_1 C_3 F street_1 175 57 87.7 A-
1303 S_1 C_3 M street_7 188 82 49.7 B
1304 S_1 C_3 M street_2 195 70 85.2 A
1305 S_1 C_3 F street_5 187 69 61.7 B-
2101 S_2 C_1 M street_7 174 84 83.3 C
2102 S_2 C_1 F street_6 161 61 50.6 B+
2103 S_2 C_1 M street_4 157 61 52.5 B-
2104 S_2 C_1 F street_5 159 97 72.2 B+
2105 S_2 C_1 M street_4 170 81 34.2 A
2201 S_2 C_2 M street_5 193 100 39.1 B
2202 S_2 C_2 F street_7 194 77 68.5 B+
2203 S_2 C_2 M street_4 155 91 73.8 A+
2204 S_2 C_2 M street_1 175 74 47.2 B-
2205 S_2 C_2 F street_7 183 76 85.4 B
2301 S_2 C_3 F street_4 157 78 72.3 B+
2302 S_2 C_3 M street_5 171 88 32.7 A
2303 S_2 C_3 F street_7 190 99 65.9 C
2304 S_2 C_3 F street_6 164 81 95.5 A-
2305 S_2 C_3 M street_4 187 73 48.9 B
2401 S_2 C_4 F street_2 192 62 45.3 A
2402 S_2 C_4 M street_7 166 82 48.7 B
2403 S_2 C_4 F street_6 158 60 59.7 B+
2404 S_2 C_4 F street_2 160 84 67.7 B
2405 S_2 C_4 F street_6 193 54 47.6 B
一、单级索引
1. loc方法、iloc方法、[ ]操作符
最常用的索引方法可能就是这三类,其中iloc表示位置索引,loc表示标签索引,[ ]也具有很大的便利性,各有特点。
(1)loc方法
注意:所有在loc中使用的切片全部包含右端点!
① 单行索引:
提出了ID
(索引)为“1103”的观测:
df.loc[1103]
School S_1
Class C_1
Gender M
Address street_2
Height 186
Weight 82
Math 87.2
Physics B+
Name: 1103, dtype: object
② 多行索引:
先用[ ]将所要提取的样本的索引号框起来。提出了ID
(索引)为“1102”和“2304”的观测:
df.loc[[1102,2304]]
注意:所有在loc中使用的切片全部包含右端点!这是因为如果作为Pandas的使用者,那么肯定不太关心最后一个标签再往后一位是什么,但是如果是左闭右开,那么就很麻烦,先要知道再后面一列的名字是什么,非常不方便,因此Pandas中将loc设计为左右全闭。
提取索引号从1304到2103的观测(不需要用[ ]):
df.loc[1304:2103].head()
提取索引号从1304到最后的观测(不需要用[ ]):
df.loc[1304:]
提取索引号从2402倒着往上取(-1的含义)所有的观测(不需要用[ ]):
df.loc[2402::-