• day9-机器学习之pandas库学习


    ​1、pandas是python的一个库,主要功能是处理数据,是各种机器学习比赛最常用的库(没有之一)。

    2、使用方法:import pandas as pd,前提得安装了这个库

    3、pandas有三大数据结构

    • dataframe
    • panel #高版本已弃用
    • series

    4、Series介绍

    • 创建series,s = pd.Series([2, 3, 4])
    • 可以通过Series对象的values属性获取数据部分,数据部分是ndarray s.values
    • 可以通过Series对象的index属性获取索引部分,list(s.index)
    • 可以通过index参数为对象指定字符串类型索引
    index = ['mo', 'mo', 'da']
    s = pd.Series([1,2,3], index=index)
    
    • 1
    • 2
    • s[s>2]可以把s中大于2的值选出来
    • np.sqrt(s),求s中的每个值的算术平方根
    • 通过字典创建Series对象
    dic = {"时崎狂三": 16, "鲁鲁修": 18, "埼玉": 24}
    s = pd.Series(dic) # dic的key是s的index
    
    • 1
    • 2
    • s[0]返回的是一个值
    • s[0:1]返回的是一个series,采用整数索引对series进行切片时,区间不包括右侧最大索引,也就是左闭右开
    • 选取多个值,s[[‘时崎狂三’, ‘埼玉’]]
    • 判断数据是否缺失:pd.isnull(s)
    • 统计缺失值的个数:pd.isnull(s).sum()

    5、dataframe介绍

    • 创建dataframe对象
    dic = {'动漫番名':['约会大作战', '叛逆的鲁鲁修', '一拳超人'],
           '喜欢人物':['时崎狂三', '鲁鲁修', '埼玉'],
    	   '看番时间': [2021, 2016, 2018]}
    df = pd.DataFrame(dic)
    
    • 1
    • 2
    • 3
    • 4
    • 可以通过columns参数指定列的显示顺序
    df = pd.DataFrame(dic, columns=['动漫番名', '看番时间', '喜欢人物'])
    
    • 1
    • df.shape (3,3)
    • df.index 行索引
    • df.columns 列索引
    • df.values 返回一个3*3的array
    array([['约会大作战', 2021, '时崎狂三'],
           ['叛逆的鲁鲁修', 2016, '鲁鲁修'],
           ['一拳超人', 2018, '埼玉']], dtype=object)
    
    • 1
    • 2
    • 3
    • 查看数据的基本信息,df.info()

    • 索引不能单个修改,可以将列的属性变为索引 df = df.set_index(['看番时间'])

    • 获取列,df['动漫番名'],获取多列,df[['喜欢人物', '动漫番名']]

    • 读取csv文件df = pd.read_csv(file_path)

    • 索引方式:

      • 直接索引,必须先列后行
      • 按名字索引,loc
      • 按数字索引,iloc
      • 组合索引,数字、名字混合使用 ix
    • 对某一列按照从大到小的顺序排列(需要是数值类型的列),df.sort_values(by=[列名], ascending=False) 默认是升序的

    • 新增一列,df[列名] = 对应值

    • 数据分组,g = df.groupby(列名),g是一个dataframe组对象,分组的目的是为了聚合(sum mean等)来看出数据的分布特征

    • 统计某列的数据,df[列名].value_counts()

    • 合并数据,pd.merge(left, right, on=[列名])

    • 合并数据后一般需要重新索引,df.reset_index(drop=True),将旧索引丢掉

    • apply方法:df.apply(函数名), 例如:

     def add(x): 
        return x+1
     df.apply(add) # 就是将df的每一个值加了1
    
    • 1
    • 2
    • 3
    • 透视表,pd.pivot_table(df, index=列名,columns=列名,values=列名,aggfunc=np.sum),通过pandas的透视表可以改变表的结构,变成更方便我们观察的数据格式,其中的aggfunc参数是聚合使用的函数
    • 交叉表crosstab()是一种特殊的pivot_table(),多用于计算分组频率,pd.crosstab()


    实践是检验真理的唯一标准,这些关于pandas的库的操作必须通过自己手敲练习才能掌握,切记不要眼高手低。

    活动地址:CSDN21天学习挑战赛

  • 相关阅读:
    记一次有意思的 SQL 实现 → 分组后取每组的第一条记录
    【Unity3D】UI Toolkit容器
    linux地址空间
    PIE:1979-2018年中国气温数据产品(空间分辨率为0.1º)
    给Android第三方SDK传入代理Context
    Python 操作BeautifulSoup4(爬取网页信息)
    linux安装mysql
    二叉树的中序遍历
    windows优化原神
    windows文件和目录相关命令
  • 原文地址:https://blog.csdn.net/mg1507/article/details/126410272