美文网首页
pandas学习1

pandas学习1

作者: 奇楠之后 | 来源:发表于2020-04-16 20:56 被阅读0次

Series

series 是一种类似一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的标签(索引)组成

  1. 仅有数据列表即可产生最简单的series
import pandas as pd
s1 = pd.Series([1,'a',5.2,7])
#获取索引
s1.index
#获取数据
s1.values
  1. 创建一个具有标签索引的series
s2 = pd.Series([78,'kkk',67,90],index=['a','b','c','d'])
  1. 使用python字典创建series
# key作为index 
s3 = pd.Series([{'name':'haha','age':78}])
  1. series的查询
# 查询方法和字典类似  获取单个数据返回是一个值
s2['a']
# 查询多个标签  返回仍是一个series对象
s2[['a','b']]
  1. series的属性方法
    • value_counts() :各个数值的数量统计
    • apply :将函数作用于每一个value
    • str:针对series的每个string类型的value,做字符操作

DataFrame

  1. 如何创建一个DataFrame对象
    df = DataFrame(data, index, columns, dtype, copy)
    • data表示要传入的数据 ,包括 ndarray,series,map,lists,dict,constant和另一个DataFrame
    • index和columns 行索引和列索引 格式['x1','x2']
    • dtype:每列的类型
    • copy:从input输入中拷贝数据。默认是false,不拷贝。
  2. dataframe对象基本属性
    文章
  3. 读取csv文件构建dataframe对象
    pd.read_csv() 函数各个参数含义
    • path:表示文件系统位置,url,文件型对象的字符串
    • sep 和 delimiter:用于对行中各字段进行拆分的字符序列和正则表达式
    • header :用作列名的行号,默认是第一行,如果csv文件没有应该设置为None
    • index_clo:用作行索引的列名或列编号
    • names:用作列名的列表对象,结合header = None
    • skiprows:需要忽略的行数(从文件开始出算起),或是需要跳过的行号列表(从0开始)
    • na_values:一组用于替换NA的值
    • comment:用于将注释信息从行尾拆分出去的字符(一个或多个)
    • parse_dates:默认false
    • keep_date_col:默认false
    • converters:用列号/列名跟函数映射关系组成的字典,{‘col’:function}会对col列的所有值应用函数function
    • dayfirst
    • date_parser:用于解析日期的函数
    • nrows:需要读取的函数,从文件开始出算起
    • iterator:返回一个textparser,以便逐块读取文件
    • chunksize:文件快的大小,用于迭代
    • skip_footer:需要忽略的函数,从文件末尾处算起
    • verbose
    • encoding:编码格式
    • squeeze:如果数据解析后仅剩一列,返回series
    • thousands:千分位分隔符
  1. dataframe操作
    4.1 查询--数值,列表,区间,条件,函数
    使用 df.loc[index,columns] 函数进行查询,该函数有两个参数,第一个是行标签,第二个是列标签(可选参数),两个参数既可以是列表也可以单个字符,如果两个参数都为列表,那么返回的是一个dataframe,否则,则为series
    • 使用单个label值查询数据
    # 准确的得到一个数
    df.loc[index,columns]
    # 区别于df.ix[index]  获取某行指定列的值
    df.loc[index,[col_name,col_name2]]
    
    • 使用值列表批量查询
    # 区别于df['col_name'],获取某列的指定行数据
    df.loc[[index1,index2,index3],col_name]
    # 返回一个dataframe,相当于截取一个小方块
    df.loc[[index1,index2],[col1,col2]]
    
    • 使用数值区间进行范围查询
    # 行按区间
    df.loc[index1:index2,col1]
    # 列按区间
    df.loc[index1,col1:col2]
    # 行和列都按区间
    df.loc[index1:index2,col1:col2]
    
    • 使用条件表达式查询
    # 使用简单查询
    df.loc[df['wendu']<-10,:]
    # 组合条件查询 &表示与 每个条件用()
    df.loc[(df[col1]<30)&(df[col2]>15),:]
    
    • 调用函数查询
    # 直接写lambda表达式
    df.loc[lambda df : (df.['bWenDu']<=30)&(df.[yWenDu]>=15),:]
    # 自己编写函数,查询9月份,空气质量好的数据
    def query_my_datas(df):
      return df.index.str.startswith('2018-09')&df['tianqi'] == '晴'
    df.loc[query_my_datas,:]
    
    4.2 新增数据列
    • 直接赋值
    # 去掉字符c
    df[:,'bwendu']  = df['bwendu'].str.replace('c','').astype('int32')
    # 新增一列数据数据
    df[:,'wencha'] = df['gaowen'] - df['diwen']
    
    • df.apply方法
      dataframe.apply有两个参数,第一是自定义函数(函数参数是一个series对象,是dataframe的行或列),第二个axis,axis=0(默认等于0)表示函数按列作用,此时series的索引是dataframe的index,axis=1表示函数按行作用,此时series的索引是dataframe的列名。返回的是一个新的series对象
    # 新建一个温度类型
    def get_wendu_type(x):
      if x['bwendu'] > 33:
        return '高温'
      if ['ywendu'] < -10:
        return '低温'
      return '常温'
    df['wendu_type'] = df.apply(get_wendu_type,axis=1)
    
    • df.assign方法
      不同于apply,该方法可以同时新增多个列,其次在apply中需要指定axis,在assign中默认传入dataframe的行series(apply axis=1)。该方法不会修改函数本身,返回一个新的对象
    df.assign(
      bwendu_huashi = lambda x : x['bwendu']*9/5+32,
      ywendu_huashi = lambda x : x['ywendu']*9/5+32,
    )
    
    • 按条件选择分组分别赋值
    # 广播机制 会新增一列 
    wencha_type = ''
    df.loc[df['bwendu']-df['ywendu']>10,'wencha_type'] = '温差大'
    df.loc[df['bwendu']-df['ywendu']<=10,'wencha_type'] = '温差正常'
    

参考链接:
pandas常用函数及操作
dataframe基本函数
pandas入门视频

相关文章

  • Pandas基础之DataFrame,Series

    pandas使用(1) note:学习环境python3.5,pandas库 pandas是基于NumPy的一个非...

  • 03.pandas基础操作

    3、pandas基础操作 1. pandas 介绍 1.1 为什么学习pandas numpy已经可以帮助我们进行...

  • pandas学习-1

    Pandas数据结构Series:基本概念及创建 "一维数组"Serise ` Series 数据结构 Serie...

  • Pandas 学习(1)

    Pandas 学习 基本命令 导包 数据的导入文件 数据的检查和查看查看数据框的前几行chipo.head(n) ...

  • pandas学习1

    Series series 是一种类似一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的标签(索引)组...

  • 大师兄的Python机器学习笔记:Pandas库

    大师兄的Python机器学习笔记:实现评估模型 一、关于Pandas 1. Pandas和Numpy Pandas...

  • 如何使用pandas进行数据测试

    pandas学习记录 环境配置 1.python3.6.5 pandas0.19.2 pip install pa...

  • 欠缺技术

    1.pandas系统学习,pandas dask airflow 3.pyspark 4.amazon RedSh...

  • Pandas笔记1-导入csv文件

    1 本文适合读者 刚开始学习Pandas的新手 2 环境 Python 3.7.0Pandas 0.23.4Num...

  • pandas学习笔记(1)

    import pandas as pd 基础 简单手册 Cheat Sheet 创建image.pngpd.Ser...

网友评论

      本文标题:pandas学习1

      本文链接:https://www.haomeiwen.com/subject/fdudvhtx.html