Pandas基础
一、文件的读取与写入
1. 读取
-
csv格式
-
txt格式
-
xls 或 xlsx格式
2. 写入
- csv格式
- xls 或 xlsx格式
二、基本数据结构
1. Series
- 创建一个Series
对于一个Series,其中最常用的属性为值(values),索引(index),名字(name),类型(dtype)
- 访问Series属性
- 取出某一个元素
之后会再次讨论索引的详细应用
- 调用方法
- Series有相当多的方法可以调用:
2. DataFrame
- 创建一个DataFrame
- 从DataFrame取出一列为Series
- 修改行或列名
- 调用属性和方法
- 索引对齐特性
这是Pandas中非常强大的特性,不理解这一特性有时就会造成一些麻烦
- 列的删除与添加
对于删除而言,可以使用drop函数或del或pop
pop方法直接在原来的DataFrame上操作,且返回被删除的列,与python中的pop函数类似
可以直接增加新的列,也可以使用assign方法
但assign方法不会对原DataFrame做修改
- 根据类型选择列
- 将Series转换为DataFrame
使用T符号可以转置
三、常用基本函数
下面都是用到这份虚拟的数据集
1. head 和 tail
2. unique 和 nunique
3. count 和 value_counts
4. describe 和 info
5. idxmax 和 nlargest
6. clip 和 replace
clip和replace是两类替换函数
7. apply函数
apply是一个自由度很高的函数,在第3章我们还要提到
四、排序
1. 索引排序
2. 值排序
五、问题和练习
1. 问题
【问题一】 Series和DataFrame有哪些常见属性和方法?
data:数据。
index:索引
dtype:输出数据的类型
name:Series名称
copy:复制数据。bool型,默认为False
Series其中最常用的属性为:值(values),索引(index),名字(name),类型(dtype)……
函数原型是:DataFrame([data, index, columns, dtype, copy])
DataFrame:索引(index),列(column),形状(shape),均值(mean)……
【问题二】 value_counts会统计缺失值吗?
value_counts不会统计缺失值
【问题三】 与idxmax和nlargest功能相反的是哪两组函数?
【问题四】 在常用函数一节中,由于一些函数的功能比较简单,因此没有列入,现在将它们列在下面,请分别说明它们的用途并尝试使用。
sum/mean/median/mad/min/max/abs/std/var/quantile/cummax/cumsum/cumprod
参数 axis
axis=0 对每一列进行操作
axis=1 对每一行进行操作
参数 skipna
计算中,pandas 会默认排除NaN值,设置 skipna=False 将不再排除 NaN 值
sum 函数:
mean 函数:
median 函数:
mad 函数:
min 函数 和 max 函数:
abs 函数:
std 函数:
var 函数:
quantile 函数:
cummax 函数:
cumsum 函数:
cumprod 函数:
【问题五】 df.mean(axis=1)是什么意思?它与df.mean()的结果一样吗?第一问提到的函数也有axis参数吗?怎么使用?
不一样,使用情况如下解释:
2. 练习
【练习一】 现有一份关于美剧《权力的游戏》剧本的数据集,请解决以下问题:
(a)在所有的数据中,一共出现了多少人物?
(b)以单元格计数(即简单把一个单元格视作一句),谁说了最多的话?
(c)以单词计数,谁说了最多的单词?
【练习二】现有一份关于科比的投篮数据集,请解决如下问题:
(a)哪种action_type和combined_shot_type的组合是最多的?
(b)在所有被记录的game_id中,遭遇到最多的opponent是一个支?