zoukankan      html  css  js  c++  java
  • 利用Python进行数据分析_数据聚合与分组运算_分组级运算和转换

    transform方法

    transform会讲一个函数运用到各个分组。

    文件6.xlsx的内容如下:

     假设我们想为DataFrame添加一个用于存放各索引分组平均值的列。我们可以先聚合再合并:

    from pandas import Series,DataFrame
    import pandas as pd
    df = pd.read_excel('F:/Jupyter/6.xlsx')
    sex_mean = df.groupby('sex').mean().add_prefix('mean_')
    sex_mean
    pd.merge(df,sex_mean,left_on='sex',right_index=True)

     接下来,我们用transform方法解决这个问题:

    from pandas import Series,DataFrame
    import pandas as pd
    import numpy as np
    df = pd.read_excel('F:/Jupyter/6.xlsx')
    key = ['sex']
    sex_mean = df.groupby(key).transform(np.mean).add_prefix('mean_')
    sex_mean

    运行结果:

    这个方法的好处是,假设我们现在要将每个人的平均分再减10分。我们只需要写一个函数 def minus() 

    from pandas import Series,DataFrame
    import pandas as pd
    import numpy as np
    df = pd.read_excel('F:/Jupyter/6.xlsx')
    # key = ['age']
    def minus(arr):
        return arr-10
    sex_mean = df.groupby('age').transform(minus).add_prefix('mean_')
    sex_mean

    执行结果:

    从结果中,我们可以看到列表中的每个数值均被减10。 

    applye方法

    调用applye方法返回的是一个pandas对象或标量值。

    题目:分别计算男生和女生每个科目的平均成绩。

    from pandas import Series,DataFrame
    import pandas as pd
    import numpy as np
    df = pd.read_excel('F:/Jupyter/6.xlsx')
    def find(df):
        return df.mean()
    sex = df.groupby('sex').apply(find)
    sex

    运行结果:

  • 相关阅读:
    netmeeting使用收集
    开始Nunit学习(1)
    数据库信息查询(作者不是我)
    2月到5月的总结
    最近学到的一些东西
    gridview无法绑定datarow[]的解决
    asp.net控件开发(二)简单属性
    javascript 获取页面高度(多种浏览器)(转)
    My Asp.net Ajax Trip(一) Using For UpdatePanel
    asp.net 控件开发(一)显示控件内容
  • 原文地址:https://www.cnblogs.com/zhouwp/p/15651325.html
Copyright © 2011-2022 走看看