• 数据分析- pandas基本操作


    1. pandas基本操作

    1.为什么学习pandas

    numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢?
    	numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据!
    

    2. 什么是pandas?

    - 首先先来认识pandas中的两个常用的类
    Series
    DataFrame
    

    3. Series

    简介

    Series是一种类似与一维数组的对象,由下面两个部分组成:
    	values:一组数据(ndarray类型)
    	index:相关的数据索引标签
    
    Series的创建
    	由列表活numpy数组创建
    	由字典创建
    

    Series使用

    # Series得索引
    #隐式索引:数值型
    #显式所用:自定义(字符串)
    	#提高数据得可读性
    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    #Series这个数据结构中存储的数据一定得是一个维度
    s1 = Series(data=[1,2,3,4,5])
    s2 = Series(data=np.random.randint(0,100,size(4,)))
    dic ={
        'a':1,
        'b':2,
        'c':3
    }
    #Series得索引可以为字符串
    s3 = Series(data=dic)
    #index指定显式索引
    s4 = Series(data=[1,2,3],index=['数学','英语','理综'])
    
    
    #s1
    0    1
    1    2
    2    3
    3    4
    4    5
    dtype: int64
        
    #s3
    a    1
    b    2
    c    3
    dtype: int64
        
    #s4
    数学    1
    英语    2
    理综    3
    dtype: int64
    

    Series得索引和切片

    索引

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    #index指定显式索引
    s4 = Series(data=[1,2,3],index=['数学','英语','理综'])
    
    s4[0] #输出结果 1
    s4['数学'] #输出结果1
    s4.数学 #输出结果1
    

    切片

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    #index指定显式索引
    s4 = Series(data=[1,2,3],index=['数学','英语','理综'])
    
    s4[0:2]
    #输出结果
    
    数学    1
    英语    2
    dtype: int64
    

    Series得常用属性

    - shape 数组形状
    - size  数组长度
    - index 数组下标
    - values 数组值
    

    Series的常用方法

    • head(),tail()
    • unique()
    • isnull(),notnull()
    • add() sub() mul() div()

    Series数据显示和去重

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    #index指定显式索引
    s4 = Series(data=[1,2,3],index=['数学','英语','理综'])
    
    s4.head(2) # 显示前n条数据
    s4.tail(2) # 显示后n条数据
    
    s= Series(data=[1,1,2,2,3,4,5,6,6])
    s.unique() # 对Series进行去重
    

    Series的算数运算

    索引与之匹配的值进行算数运算,否则补空

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    s = Series(data=[1,1,2,2,3,4,5,6,6,6,6,6,6,7,8])
    
    s+s
    s.add(s)
    
    
    
    
    s1 = Series(data=[1,2,3,4])
    s2 = Series(data=[5,6,7])
    s1 + s2
    # 输出结果
    0     6.0
    1     8.0
    2    10.0
    3     NaN
    dtype: float64
        
        
    
    # 清洗Series中的空值
    s1 = Series(data=[1,2,3,4],index=['a','b','c','e'])
    s2 = Series(data=[1,2,3,4],index=['a','d','c','f'])
    s = s1 + s2
    s
    # 输出结果
    a    2.0
    b    NaN
    c    6.0
    d    NaN
    e    NaN
    f    NaN
    dtype: float64
        
        
        
        
    # boolean可以作为索引取值
    s1[[True,False,True,False]]
    # 输出结果
    a    1
    c    3
    dtype: int64
       
    
    # 将符合清洗要求的布尔值获取
    s.isnull()
    # 输出结果
    a    False
    b     True
    c    False
    d     True
    e     True
    f     True
    dtype: bool
        
    
        
    s.notnull()
    #输出结果
    a     True
    b    False
    c     True
    d    False
    e    False
    f    False
    dtype: bool
        
    
    # NAN的清洗
    s[s.notnull()]
    # 输出结果
    a    2.0
    c    6.0
    dtype: float64
    

    DataFrame

    1.简介

    DataFrame是一个[表格型]的数据结构。DataFrame由按一定顺序排列多列数据组成。设计初衷是将Series的使用场景从一维扩展到多维。DataFrame既有行索引,也有列索引
    	- 行索引:index
    	- 列索引:columns
    	- 值:values
    

    2.DataFrame的创建

    numpy 创建
    字典创建
    

    3.DataFrame的使用

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    df = DataFrame(data = np.random.randint(0,100,size(5,6)))
    df
    # 输出结果
    

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic = {
        'name':['tome','jay','bobo'],
        'salary':[10000,15000,10000]
    }
    df = DataFrame(data=dic,index=['a','b','c']) # 指定行索引
    df
    # 输出结果
    

    4. DataFrame的属性

    values、columns、index、shape
    
    df.values#输出DataFrame值
    df.shape# 输出DataFrame形状
    df.index #输出DataFrame的行索引值
    df.columns #输出DataFrame的列索引值
    

    5.DataFrame索引操作

    1.对行进行索引

    import pandas as pd
    from pandas import Series,DataFrame
    from numpy import np
    
    dic = {
        'name':['tome','jay','bobo'],
        'salary':[10000,15000,10000]
    }
    df = DataFrame(data=dic,index=['a','b','c']) # 指定行索引
    
    # 索引取单行
    df.loc['a']
    df.iloc[0]
    
    # 索引取多行
    df.loc[['a','c']]
    df.iloc[[0,2]]
    

    2.对列进行索引

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic = {
        'name':['tome','jay','bobo'],
        'salary':[10000,15000,10000]
    }
    df = DataFrame(data=dic,index=['a','b','c']) # 指定行索引
    
    #索引取单列
    df['name']
    
    #索引取多列
    df[['salary','name']]
    

    3.对元素进行索引

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic = {
        'name':['tome','jay','bobo'],
        'salary':[10000,15000,10000]
    }
    df = DataFrame(data=dic,index=['a','b','c']) # 指定行索引
    
    # 取当个元素
    df.iloc[1,1]
    df.loc['b','salary']
    
    # 取出多个元素值
    df.loc[['b','c'],'salary']
    df.iloc[[1,2],1]
    

    6. DataFrame切片操作

    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic = {
        'name':['tome','jay','bobo'],
        'salary':[10000,15000,10000]
    }
    df = DataFrame(data=dic,index=['a','b','c']) # 指定行索引
    
    # 切行
    df[0:2]
    
    # 切列
    df.iloc[:,0:2]
    
    

    7. DataFrame的运算

    和Series是一样
    元素对应的行列索引保持一致,则元素间可以进行算数运算,否则补空
    

    8. 时间数据类型的转换

    # pd.to_datatime(col)
    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic ={
        'time':['2019-01-09','2011-11,11','2018-09-22'],
        'salary':[1111,222,333]
    }
    df =DataFrame(data=dic)
    df
    
    #查看df的数据的数据类型
    df.dtypes
    #输出结果
    salary     int64
    time      object
    dtype: object
        
    
    #将time列转换成时间序列类型
    df['time'] = pd.to_datetime(df['time'])
    df
    
    
    # 查看数据类型
     df.dtypes
    # 输出结果
    salary             int64
    time      datetime64[ns]
    dtype: object
    

    9.将某一列设置为行索引

    # df.set_index()
    
    import pandas as pd
    from pandas import Series,DataFrame
    import numpy as np
    
    dic ={
        'time':['2019-01-09','2011-11,11','2018-09-22'],
        'salary':[1111,222,333]
    }
    df =DataFrame(data=dic)
    
    #将time这一列作为原数据的行索引
    df.set_index(df['time'],inplace=True)
    
    df.drop(labels='time',axis=1,inplace=True) #drop函数中axis的0行,1列
    
  • 相关阅读:
    Python爬虫连载1-urllib.request和chardet包使用方式
    Java连载69-接受输入、用数组模拟栈
    HTML连载61-焦点图、固定定位
    Java连载68-数组的拷贝、二维数组
    [Java] MVC
    [Java] JSP
    [Java] HTTP
    [设计模式] 设计模式课程(八)--抽象工厂模式
    [设计模式] 设计模式课程(七)--工厂模式
    [刷题] 75 Sort Colors
  • 原文地址:https://www.cnblogs.com/zhangdadayou/p/12026045.html
Copyright © 2020-2023  润新知