zoukankan      html  css  js  c++  java
  • 一个小练习,理解起来挺吃力的,我加了注释,以后看的多了,再回来看,应该好理解

    # group_6.apply(function_name) # 对分组对象应用自定义函数
    # 练习: 对df6按k3分组后,求每组中k2列的最大值和最小值
    # 要求利用 apply 函数

    这个作业看着很简单,但是我理解起来挺吃力的。
    这个答案不是我写的,实在是不好下口,因为理解的不到位,没有切入点吧...不知道为啥这个这么吃力
    df6 = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],
    
                        'k2': [1, 1, 2, 3, 3, 4, 4]})
    
    bins = pd.cut(df6['k2'], [0, 2, 4], labels=['Low', 'High']) #还是用0~2,2~4分开,但是标签用low跟high
    
    df6['k3'] = bins   #
    
    group_6 = df6['k2'].groupby(df6['k3'])  #这是懵逼,我的理解是df6['k2]这一串数字进行group化统计,用k3里的low与hig分成2组
    
    print(group_6.max(),'我是max')  #打印了一下看了看 k3
                                     #                 Low     2                      #low里边最大的
                                     #                 High    4                      #high里边最大的
                                     #                 Name: k2, dtype: int64 我是max
    print(group_6.min(),'我是min') ##打印了一下看了看 k3
                                     #                 Low     1                      #low里边最小的
                                     #                 High    3                      #high里边最小的
                                     #                 Name: k2, dtype: int64 我是min
    def myfunc(g):  #这里也能看懂,就是传入一个group(分组统计的类)
    
        return {'Max': g.max(), 'Min': g.min()}     #以字典的形势返回
    
    print(group_6.apply(myfunc))   #group_适用于后边的函数表达式

    运行结果

    k3
    Low     2
    High    4
    Name: k2, dtype: int64 我是max
    
    k3
    Low     1
    High    3
    Name: k2, dtype: int64 我是min
    
    k3       
    Low   Max    2
          Min    1
    High  Max    4
          Min    3
    Name: k2, dtype: int64


  • 相关阅读:
    古典密码-移位密码|埃特巴什密码Atbash
    古典密码-凯撒密码Caeser
    古典密码-维吉尼亚密码Vigenere
    使用kubeadm搭建一个k8s集群
    用户态线程和内核态线程的区别
    模板合集
    NoteExpress 章节合并后如何更新参考文献列表?
    CSDN 博客园主题
    GShang的博客园2020年终总结
    【比赛记录】CodeChef January Challenge 2021
  • 原文地址:https://www.cnblogs.com/PYlog/p/9147366.html
Copyright © 2011-2022 走看看