
# 编程实践 Pandas (上）

开源内容：https://github.com/datawhalechina/joyful-pandas


## 基本信息

- 学习周期：11天，每天平均花费时间2小时-5小时不等，根据个人学习接受能力强弱有所浮动。
- 学习形式：理论学习 + 练习
- 人群定位：有Python语言编程基础，对学习数据分析有需求的学员。
- 先修内容：[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language)
- 难度系数：中


## 任务安排

### Task01：Pandas基础（1天）

<b>理论部分</b>

- 掌握常见文件格式的读写操作
- 理解并熟悉 Series 和 DataFrame 的重要属性和重要方法
- 掌握各类排序（索引排序和值排序、单级排序和多级排序）

<b>练习部分</b>

- 《权利的游戏》剧本数据集分析
- 科比投篮数据集分析

### Task02：索引（3天）

<b>理论部分</b>

- 熟练掌握多种单层索引方式及其异同
- 掌握和理解多级索引操作
- 熟悉常用索引设定方法及其区别
- 掌握索引函数、去重函数和抽样函数

<b>练习部分</b>

- UFO数据集分析
- 口袋妖怪数据集分析

### Task03：分组（2天）

<b>理论部分</b>

- 理解SAC过程和groupby机制
- 掌握分组三大操作：聚合、过滤和变换
- 熟悉 apply 函数用法

<b>练习部分</b>

- 钻石数据集分析
- 非法药物数据集分析

### Task04：变形（2天）

<b>理论部分</b>

- 熟悉3个透视函数的区别与用法
- 理解stack和unstack状态
- 掌握变形函数的各类使用场合
- 了解哑变量和因子化的用法

<b>练习部分</b>

- 非法药物数据集的变形操作
- 某国地震数据集的变形操作

### Task05：合并（2天）

<b>理论部分</b>

- 掌握Series和DataFrame的4组常用合并函数
- 了解合并函数的适用场合/区别
- 理解inner、outer、left、right连接的区别
- 各类排序

<b>练习部分</b>

- 某公司员工数据集的合并操作
- 某校课程表数据集的合并操作

### Task06：综合练习（1天）

- 四道综合练习题



---
# 编程实践（Pandas 下）

开源内容：https://github.com/datawhalechina/joyful-pandas

> 注：此处显示本次组队学习的任务，点击标题的链接可以跳转到对应的学习资料。

## 基本信息
- 学习周期：9天 2-3h/天
- 学习形式：理论学习 + 练习
- 人群定位：有 python 编程基础，希望从事数据分析工作的学习者，参与过Pandas教程（上）组队学习者优先。
- 先修内容：[Python编程语言](https://github.com/datawhalechina/team-learning-program/tree/master/Python-Language)
- 难度系数：中


## 任务安排

### Task01：缺失数据（2天）

<b>理论部分</b>

- 理解Nullable类型与NA符号
- 掌握缺失值的填充与剔除
- 掌握常见缺失值插值方法

<b>练习部分</b>

- 两道缺失数据练习题

### Task02：文本数据（3天）

<b>理论部分</b>

- 掌握基本正则表达式的用法
- 理解string类型的性质
- 掌握文本类型的5类操作
- 熟悉常见字符串方法

<b>练习部分</b>

- 两道文本数据练习题

### Task03：分类数据（1天）

<b>理论部分</b>

- 熟悉分类类型的属性
- 掌握分类类型的排序和比较操作

<b>练习部分</b>

- 两道分类数据练习题

### Task04：时序数据（2天）

<b>理论部分</b>

- 掌握时间变量的类型及其创建方法
- 掌握时序索引及其属性
- 理解并掌握重采样操作
- 掌握窗口函数的用法

<b>练习部分</b>

- 两道时序数据练习题

### Task05：综合练习（1天）

- 三道综合练习题


---
# 贡献人员


姓名 | 博客 | 备注
---|---|---
耿远昊|[Github](https://github.com/GYHHAHA) |华东师范大学在读
谢文睿|[Github](https://github.com/Sm1le) |北京工业大学硕士，南瓜书项目发起人
