机器学习(五):Pandas的使用技巧(一)

版权声明:尊重知识产权与劳动成果 https://blog.csdn.net/hzk1562110692/article/details/89007585

这是一篇机器学习的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录。
适用人群:机器学习初学者,转AI的开发人员。
编程语言:Python

自己在项目中经常用到pandas,尤其是数据分析数据预处理这两部分,自己最直接的感受就是pandas像是SQL+excel,当然,pandas的功能远不止这些。

DataFrame和Series的区别

DataFrame和Series是Pandas的两大基本类型,区别如下:
DataFrame可以理解为Excel中的一张表;
Series可以理解为一张Excel表中的一行或一列数据。Series可以理解为一维数组,和一维数组不同的是,Series具有索引

pandas常用功能

pandas常用函数清单

  • 轻松处理浮点数据中的丢失数据(以NaN表示)以及非浮点数据
  • 大小可变性:可以从DataFrame和更高维的对象插入和删除
  • 自动和显式的数据对齐:对象可以显式地与一组标签对齐,或者用户可以简单的忽略标签,让Series,DataFrame等自动对齐你的数据在计算
  • 功能强大,灵活的按组功能来执行对数据集拆分申请,联合行动,对于聚合和转换数据
  • 可以轻松地将其他Python和NumPy数据结构中的不同索引的数据转换为DataFrame对象
  • 基于智能标签的切片花式索引和 大型数据集的子集
  • 直观的合并和连接数据集
  • 数据集的灵活的重塑和旋转
  • 坐标轴的分层标记(可能每个标记有多个标签)
  • 强大的IO工具,用于从平面文件(CSV和分隔),Excel文件,数据库加载数据,以及从超快HDF5格式保存/加载数据
  • 时间序列 - 特定功能:日期范围生成和频率转换,移动窗口统计,移动窗口线性回归,日期转换和滞后等。

pandas常用方法

下面从自己项目中遇到的一些pandas知识点整理出来:
(注:以下pd均表示pandas)

pandas设置显示格式

pandas 中float型小数很多时候会显示成科学计数法的形式,可以通过下面设置显示小数位数:

pd.set_option('display.float_format',lambda x:'%.3f'%x)

对于数据,行和列并不能显示完全,尤其是列,很多时候需要看到每列(每个特征)的情况:

#显示多少列(特征),None表示显示所有列
pd.set_option('display.max_columns',None)
#显示多少行(记录),不建议使用None,数据多会卡死
pd.set_option('display.max_rows',50)

pd.set_option参数设置

describe()未显示所有列信息

describe()会返回基本统计量(均值、标准差、最大值、最小值)和分位数等,可以快速看到数据的分布情况,但是注意:describe()仅用于数值类型,可通过类型转换在describe()中显示:

df[['col_1'],['col_2']] = df[['col_1'],['col_2']].astype(float)
df[['col_1'],['col_2']].describe()

pandas按某列排序

参数

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)

参数说明

  • axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默认按照索引排序,即纵向排序,如果为1,则是横向排序
  • by:str or list of str;如果axis=0,那么by=“列名”;如果axis=1,那么by=“行名”;
  • ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序
  • inplace:布尔型,是否用排序后的数据框替换现有的数据框(false则修改原数据)
  • kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。
  • na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面
df = pd.read_csv('D:\spy.csv')
#按‘date’列升序排列
df.sort_values('date',inplace=True)

pandas随机取样sample()

机器学习中经常需要切分数据,切分数据要用到取样,对于样本足够多的情况下,常常会随机取样,会用到sample():
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
n:取样本个数
frac:取样本占比
replace:是否允许抽样值重复

df.sample(10000)
df.sample(frac=0.1, replace=False)

pandas去重

DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False)

  • subset : 用来指定特定的列,默认所有列
  • keep : **‘first’**表示保留第一次出现的重复行,是默认值。keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
  • inplace : boolean, default False,是直接在原来数据上修改还是保留一个副本

猜你喜欢

转载自blog.csdn.net/hzk1562110692/article/details/89007585