美文网首页Pandas
pandas使用总结

pandas使用总结

作者: 筝韵徽 | 来源:发表于2019-01-17 11:26 被阅读59次
    import pandas as pd
    import numpy as np
    

    pandas使用总结

    • 尽量使用[]来选择单列,而非使用.属性的方式,不使用.属性的原因如下:
      • 如果column名字中有空格,代码不能运行
      • 如果column名字不唯一,代码也不能运行
    • 只使用字符串作为columns的名字
    • 避免使用链式索引,不要像这样df[df['a']>12]['b']=10,而应该这样df.loc[df['a']>10,'b']=10
    • 不要使用.ix这个方法,因为他已经过期了
    • 不要没原因的就使用.at和.iat,能避免就避免
    • 不要用query方法,用.loc,iloc来使用boolean条件筛选
    • 使用算数运算符来比较,不要用add,gt的产生副本的方法
    • 当DataFrame/Series中的方法能满足需求时,尽量使用它们提供的方法
      • 尽量避免使用python内置函数
      • 尽量避免使用apply方法
    • 不要在DataFrame/Series中存储复杂的类型,例如列表,dataframe,series
    • 遵循分组规则
      • df.groupby(['grouping', 'columns']).agg({'aggregating column': 'aggregating func'})
      • df.groupby(['grouping', 'columns'])['aggregating column'].aggregating_func()
    • 针对multi-level Index 有一个标准的处理方式
      • 统一处理成单层次
    • 在groupby时尽量避免使用apply,效率太慢了
    • melt/pivot vs stack/unstack 他们功能是等同的
      习惯用法列举:
    df=pd.read_csv('data/sample_data.csv', index_col=0)
    
    df[['color', 'food', 'state']][['color', 'food']] # 不好
    df.loc[df['age'] > 30, ['color', 'food']] #好
    
    # 好
    rs = df['age'] > 30
    cs = ['color', 'food']
    df.loc[rs, cs]
    
    # 不好,不会赋值
    df.loc[['Aaron', 'Dean']]['color'] = 'PURPLE'
    df
    
    image.png
    # 好
    rs = ['Aaron', 'Dean']
    cs = 'color'
    df.loc[rs, cs] = 'PURPLE'
    df
    
    image.png

    待续。。。。

    相关文章

      网友评论

        本文标题:pandas使用总结

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