1. import pandas as pd
    2. position = pd.read_csv('position.csv')
    3. company = pd.read_csv('company_sql.csv',encoding='gbk')
    4. position.groupby(by=['city','education']).mean()
    5. 如何把上海博士平均薪资切片出来?
    6. 1、(1)使用索引
    7. - position.groupby(by=['city','education']).mean().avg,变成series形式
    8. - series形式里面可以直接输入索引的标签,去进行一个切片,比如后边加上['上海']['博士']
    9. position.groupby(by=['city','education']).mean().avg
    10. position.groupby(by=['city','education']).mean().avg['上海']['博士']
    11. (2)使用locloc支持对多个索引去进行引用
    12. - 有一个数据框,是多重索引的形式,想知道某个具体的索引下面的值,用loc最方便,如果想要一层层深入的话,可以再loc里输入多个值
    13. - series切片再进行查找,也挺方便。
    14. position.groupby(by=['city','education']).mean().loc['上海']['avg'] # 可以
    15. position.groupby(by=['city','education']).mean().loc['上海']['博士'] # 报错
    16. position.groupby(by=['city','education']).mean().loc['上海','博士'] # 报错的修改之后
    17. 2、不借助groupby,如何进行多重索引呢?
    18. - set_index,把列变成索引
    19. - reset_index,把索引变成字段
    20. - 然后再进行切片就会比较方便
    21. position.set_index(['city','education']) # 会进行加工,但是没有排好序
    22. # 先排序再加工
    23. position.sort_values(['city','education']).set_index(['city','education'])
    24. # reset_index()把索引变成字段,再用query过滤或者切片筛选符合条件的值
    25. position.groupby(by=['city','education']).mean().reset_index()
    26. (1)query查找上海博士的平均薪资:(以下三个等价)
    27. - position.groupby(by=['city','education']).mean().reset_index().query("(city=='上海') and (education=='博士')")
    28. - position.groupby(by=['city','education']).mean().reset_index().query("city=='上海'").query("education=='博士'")
    29. - position.groupby(by=['city','education']).mean().reset_index().query("(city=='上海') & (education=='博士')")
    30. position.groupby(by=['city','education']).mean().reset_index().query('city=="上海"and education=="博士"')
    31. (2)切片查找上海博士的平均薪资:
    32. a=position.groupby(by=['city','education']).mean().reset_index()
    33. a[(a.city=='上海')&(a.education=='博士')]
    34. a[(a.city=='上海')&(a.education=='博士')].avg