高阶函数

    1. import pandas as pd
    2. df = pd.read_csv('DataAnalyst.csv')
    3. # 拿到数据三步:(1)info (2)head (3)describe
    4. df.head()
    5. # 转置:df.T (矩阵运算)
    6. # 用'avg'排序:
    7. - 升序:df.sort_values(by='avg') 等价于 df.sort_values('avg')
    8. - 降序:df.sort_values('avg'ascending=False)
    9. # 用数组排序: df.avg.sort_values(),df.avg是数组
    10. df.sort_values('avg',ascending=False)
    11. # 先对avg降序,再对city降序
    12. df.sort_values(['avg','city'],ascending=False)
    13. # 对索引进行排序
    14. df.sort_index()
    15. 1、增列:
    16. - 升序 df['rank'] = df.avg.rank()
    17. - 降序 df['rank'] = df.avg.rank(ascending = False)
    18. 2df['rank'] = df.avg.rank(ascending = False,method='min')
    19. - mothod 默认按平均值排
    20. - method='min' 相同排名按最小值排
    21. - method='max' 相同排名按最大值排
    22. - method='first' 相同按index顺序来排
    23. df['rank']=df.avg.rank(ascending = False,method='min')
    24. df.sort_values(by = 'avg',ascending = False)
    25. 3unique查看唯一值,去重
    26. - df.city.unique()
    27. - df.workYear.unique()
    28. 计数:
    29. - df.workYear.value_counts()
    30. - uniquevalue_counts 对应数组
    31. df.workYear.unique()
    32. df.workYear.value_counts()
    33. 4describe描述统计
    34. - df.describe()
    35. - df.avg.describe(),(count,mean,std,max,min,分位数)
    36. - df.sum(),(sum可换为 median,std,var)
    37. df.describe()
    38. 5cumsum累加函数
    39. - df.cumsum()
    40. - df.avg.cumsum()
    41. - df['cumsum'] = df.avg.cumsum()
    42. df['cumsum'] = df.avg.cumsum()
    43. # 调用函数不要调用错
    44. - min函数在DataFarme这个方法(这个类)里
    45. - cut函数在 pd
    46. 6cut分段函数
    47. - df['bins'] = pd.cut(df.avg,bins=20);df里面添加bin列,20等分
    48. - labels 标签,分类
    49. - df['bins'] = pd.cut(df.avg,bins=4,right=True(包含右端点),labels=list('abcd'),retbins=False(左闭右开),precision=3(精度),include_lowest=False(不包含左端点))
    50. - df['bins'] = pd.cut(df.avg,bins=4,include_lowest=True)
    51. # 不规则分:
    52. - df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,]),没有切割到30之后的,所以设立一个极大值100
    53. - df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,100],labels=['0-5','5-10','10-20','20-30','30-100']
    54. - 可以在用户分级、消费水平分割,用这些方法
    55. df['bins'] = pd.cut(df.avg,bins=[0,5,10,20,30,100],labels=['0`5','5`10','10`20','20`30','30`100'])
    56. # 四分位法,百分位法
    57. pd.qcut(df.avg,4)
    58. df
    59. 7pd.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')按排名分
    60. - x:要进行分组的数据,数据类型为一维数组,或Series对象;
    61. - q:组数,即要将数据分成几组;
    62. - labels:可以理解为组标签,这里注意标签个数要和组数相等;
    63. - retbins=FalseTrue则返回数值类型是元组,返回每个数对应的分组,且获取分组边界值的列表;
    64. - duplicates='raise':默认为raiseduplicates='drop’,表示若有重复区间则删除。
    65. cut与qcut的主要区别:
    66. cut:传入参数,是分组依据
    67. qcut:传入参数,要将数据分成多少组,即组的个数,具体的组距是由代码计算