美文网首页数据蛙强化课程第一期
2019-01-21至2019-01-27本周总结

2019-01-21至2019-01-27本周总结

作者: bf3780a4db09 | 来源:发表于2019-01-27 13:51 被阅读12次

    本周主要的任务是强化pandas库,主要以练习为主,在练习中遇到了一些问题,主要包括以下内容
    1)处理重复值【DataFrame.duplicated()、DataFrame.drop_duplicates()、Series.unique和Series.nunique()】
    DataFrame.duplicated(),参考http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.duplicated.html

    clipboard.png
    用来查询数据框中是否存在重复值,关于重复值的处理由keep参数设定【删除、保留第一个或者保留最后一个】
    DataFrame.drop_duplicates(),参考http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html
    image.png
    返回数据框中的非重复值,关于重复值的处理与duplicated()类似。也可以说DataFrame.drop_duplicates()等于~DataFrame.duplicated()
    Series.unique和Series.nunique()分别是返回非重复值和相应个数。
    2)字典的神奇用法
    将数据框df中的'priority'字段中的yes换成True,no换成False
    df.replace({'priority':{'yes':True,'no':False}})
    df['priority'].map({'yes':True,'no':False})
    

    按照occupation和gender两个字段进行分组,求gender字段的样本数

    users.groupby(['occupation','gender']).agg({'gender':'count'})
    

    3)几个比较方便的函数【DataFrame.idxmax()、DataFrame.idxmin()、DataFrame.nlargetst()、get_loc()、np.where()、list.index()】
    idxmax(),参考http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.idxmax.html
    用来找到最大值的标签,返回第一个满足的值,axis参数用来控制轴向。
    idxmin()与idxmax()类似,用来找到最小值的标签。
    nlargetst(),参考https://www.geeksforgeeks.org/python-pandas-dataframe-nlargest/
    返回前几大值,用keep参数处理重复值,没找到它的相反函数前几个最小的值,就先用排序来做吧。
    get_loc()、np.where()、list.index()这三个方法都是用来查询值的索引的。
    4)关于多重索引的问题
    多重索引的求和,level参数的设置
    参考

    clipboard.png

    假设,现在有一组数据,有多重索引【 a,b,c】和【1,7,0,12,8,4,10,14,9】

    clipboard.png
    按第一个索引求和level=0
    clipboard.png
    按第二个索引求和level=1
    clipboard.png
    多重索引的除法
    DataFrame.div(other, axis='columns', level=None, fill_value=None),参考http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.div.html
    返回DataFrame/other的结果,当存在多重索引时,需要设置level。
    clipboard.png
    按照第二个索引进行匹配,列自动匹配,匹配不上或者无法相除【除数是0】的返回NaN
    clipboard.png
    关于div方法需要注意的是,用到level的时候,必须保证DataFrame和other有相同的索引名称
    clipboard.png
    此时occupation_total是Series类型,虽然结果中看似index名称是occupation,但是Series对象只存在index和value,不存在index名称。
    如果按照occupation进行匹配,会报错
    clipboard.png
    把occupation_total转成数据框,设置index是occupation就可以了。
    5)apply、applymap和map的区别
    6)numpy.int64和int不是一个数据类型
    5)和6)之前总结过,就不说了。
    最后,希望下周开始,自己能够尝试着用pandas做一些简单的小例子,向群里的小伙伴们学习!

    相关文章

      网友评论

        本文标题:2019-01-21至2019-01-27本周总结

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