在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换 以及重塑。pandas和内置的Python标准库提供了一组高级的、灵活的、 快速的工具,可以让你轻松地将数据规整为想要的格式。
缺失数据
在许多数据分析工作中,缺失数据是经常发生的。对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。
过滤缺失数据(忽略)
一维序列:
二维dataframe:
数据填充
往往将缺失数据drop掉会造成大量的附带数据丢失,因此填充缺失值的应用更广,pandas有专门用于填充数据的函数fillna():
fillna(
value=None, #以固定值填充
method=None, #ffill用前面数据填,bfill用后面值填充
axis=None, #填充方向
inplace=False, #是否代替原对象
limit=None, #最多填充多少nan
downcast=None,
**kwargs,
)
数据转换
移除重复数据
DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行(前面出现过的行);drop_duplicates方法,它会返回一个DataFrame,重复的数组会标为False:
利用函数或映射进行数据转换
例:下面有一个员工表,增加一列,年龄超过30岁的标记为老员工,否则标记为年轻。
替换值
fillna就相当于replace(np.nan,value)
重命名轴索引:
我们前面了解到DataFrame的index和columns可以直接更改:
如果你只想修改某几个标签,可以用rename传递字典的方法实现:
离散化和面元划分
统计学中常常要对一组数据按大小进行分组,比如下面对考试的分数分组(每隔10),并统计每组的人数:
等长划分面元:
更强大的qcut:qcut是一个非常类似于cut的函数,它可以根据样本分位数对数据进行面元划分。
随机取样---sample()
计算指标/哑变量
一种常用于统计建模或机器学习的转换方式是:将分类变量(categorical variable)转换为“哑变量”或“指标矩阵”。
字符串操作
Series.str内置了许多字符串处理函数,下表是常用的字符串处理函数
例:提取员工表的姓和名
|