美文网首页
pandas学习笔记(二)

pandas学习笔记(二)

作者: frankie_cheung | 来源:发表于2019-02-03 18:13 被阅读0次

    函数

    pandas的函数应用类似于python里面的map和filter还有reduce函数,这样做的事情是不需要你进行循环就可以把全部数据执行一次。

    import pandas as  pd
    
    a=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=["a","b","c"])
    
    print(a)
    
    f=lambda x:x.max()-x.min()
    
    b=a.apply(f)
    
    print(b)
       a  b  c
    0  1  2  3
    1  4  5  6
    2  7  8  9
    a    6
    b    6
    c    6
    dtype: int64
    

    这样就计算出了每一列的最大值-最小值的情况了。当然你也可以自己定义一个函数,进行应用。

    排序

    排序 :使用索引排序是使用sort_index,使用值排序是使用sort_values(by='列名')
    代码示例:

    import pandas as  pd
    
    a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])
    
    print(a)
    
    print("--------------")
    total=a.sort_values(by='b')
    
    print(total)
       a  b  c
    0  1  2  3
    1  4  8  5
    2  7  6  9
    --------------
       a  b  c
    0  1  2  3
    2  7  6  9
    1  4  8  5
    

    唯一值

    取唯一值使用方法unique()

    统计功能

    pandas 可以轻易的进行一些求和和统计数量、最大值,最小值等功能,具体随便一搜都有,也可以求标准差等之类的
    代码示例:求标准差

    import pandas as  pd
    
    a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])
    
    print(a['b'].std())
    3.0550504633038935
    

    统计每个值出现的次数

    import pandas as  pd
    
    a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])
    
    b=a["a"].value_counts()
    print(b)
    7    1
    1    1
    4    1
    

    成员资格,判断数据是否在dataframe中

    import pandas as  pd
    
    a=pd.DataFrame([[1,2,3],[4,8,5],[7,6,9]],columns=["a","b","c"])
    
    c=a["b"].isin(['12','8'])
    
    #加入数据在dataframe中,返回ture,否则返回False
    print(c)
    print("-----------")
    print(a[c])
    0    False
    1     True
    2    False
    Name: b, dtype: bool
    -----------
       a  b  c
    1  4  8  5
    

    这个有时候还是挺有用的

    处理缺失数据

    缺失数据为,数据为空,或者你在数据库取出的数据是null/None,之类的,但是你在做计算时,这些空值无法进行计算,所以需要处理
    我一般使用方式为:

    • 填充空值(fillna)为-99或者其他,然后遇到这些数值再进行逻辑判断
    • 直接使用dropna进行删除.

    tips:判断某一个值是否为空时我是这样搞的:

    np.isnan(Value)
    #假如为空就是True
    

    层次化索引

    层次化索引,我理解的是在须有某些分组时,使用会比较有效率,官方是这样解释的:让你以低维度的形式,来处理高维度的数据
    上个demo:

    import pandas as pd
    import numpy as np
    data=pd.Series(np.random.randn(10),index=[["a","a","a","b","b","b","c","c","d","d"],
    [1,2,3,1,2,3,1,2,2,3]])
    
    print(data)
    print("--------")
    print(data["a"])
    a  1   -0.646652
       2    1.074914
       3   -0.164349
    b  1    0.557621
       2   -1.079296
       3    0.193348
    c  1    1.335906
       2    1.031765
    d  2   -0.900637
       3   -1.271147
    dtype: float64
    --------
    1   -0.646652
    2    1.074914
    3   -0.164349
    dtype: float64
    

    创建空Dataframe 循环添加数据

    我们在使用python列表时经常创建一个list=[],然后循环append,使用Dataframe也可以这样进行操作。

    data=pd.DataFrame(columns=["列名","列名","PM25","列名","列名"])
    data=data.append('这里的数据为对象上面列的一行数据')
    

    相关文章

      网友评论

          本文标题:pandas学习笔记(二)

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