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


  • 相关阅读:
    ssh 使用密钥文件
    VS2015企业版,社区版,专业版详细对比
    Redis 与 数据库处理数据的两种模式(转)
    工业级物联网项目架构设计思想(转)
    C# and Redis,安装作为服务
    C# CRC32
    c++,C# 转换
    app配置智能硬件的解决方案
    C# 与C++的数据转换
    C++ 对数组sizeof 和对数组元素sizeof
  • 原文地址:https://www.cnblogs.com/PYlog/p/9147366.html
Copyright © 2011-2022 走看看