美文网首页数据分析
06 pandas DataFrame - 数据过滤、NaN处理

06 pandas DataFrame - 数据过滤、NaN处理

作者: 白尔摩斯 | 来源:发表于2018-09-17 12:42 被阅读0次

    === 数据过滤获取 ===

    个人觉得并没有什么用,完全可以用切片或索引器代替

    stu_info = pd.read_excel('student_info1.xlsx',sheetname='countif',index_col='学号').head(3)
    stu_info[stu_info.columns[0:]]
    

    === 缺失值处理 ===

    原数据:

    stu_info = pd.read_csv('student_info1.csv',header=1)
    stu_info
    #stu_info[stu_info.isnull()] 像Series这一处理是不行的
    

    1、删除nan

    # 删除nan行
    stu_info.dropna()
    # 删除nan列
    stu_info.dropna(axis=1)
    
    # 设置阈值
    # 如果一行都是nan才删除
    stu_info.dropna(how='all')
    

    2、设置NaN的值

    # 将nan设置为0
    stu_info.fillna(0)
    

    使用nan下一行的值进行填充 (axis=1列填充)

    stu_info.fillna(method='bfill')
    

    使用nan上一行的值进行填充 (axis=1列填充)

    stu_info.fillna(method='ffill')
    

    按列填充

    stu_info.fillna({'Math':100,'English':0})
    

    值替换 将语文成绩中88分换成99分

    stu_info.replace({88:99})
    

    === 统计方法 ===

    1、 计数方法count只记非nan值 (axis=1 按列)

    stu_info.count()
    

    2、总统计值

    stu_info.describe()
    

    3、最值、累加

    stu_info.max()
    stu_info.min()
    stu_info.sum()
    

    4、中位数 quantile median

    stu_info.quantile()
    stu_info.median()
    

    5、 最大值的索引值

    stu_info.idxmax()
    #stu_info.argmax()#在0.21版本中删除了
    

    6、 偏科程度(判断一组数据的最大值和最小值差别是不是很大)

    stu_info.mad(axis=1)
    

    7、 样本值累计和
    本行值加上一行的值,88+33=121

    stu_info.cumsum()
    

    8、变化率

    stu_info.pct_change()
    

    第一行NaN,因为上一行没有数据,无法计算变化率
    正的是增长的百分率,负的是减少的半分率


    === 常用统计方法 ===

    相关文章

      网友评论

        本文标题:06 pandas DataFrame - 数据过滤、NaN处理

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