精华内容
下载资源
问答
  • 今天小编就为大家分享一篇Python Pandas实现数据分组求平均值并填充nan的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。 DataFrame数据格式 fillna方式实现 groupby方式实现 DataFrame数据格式以下是数据存储形式: fillna方式实现 按照...

    Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。

    DataFrame数据格式

    以下是数据存储形式:
    行业数据

    fillna方式实现

    1. 按照industryName1列,筛选出业绩
    2. 筛选出相同行业的Series
    3. 计算平均值mean,采用fillna函数填充
    4. append到新DataFrame中
    5. 循环遍历行业名称,完成2,3,4步骤
    factordatafillna = pd.DataFrame()
    industrys = newfactordata1.industryName1.unique()
    for ind in industrys:
        t = newfactordata1.industryName1 == ind
        a = newfactordata1[t].fillna(newfactordata1[t].mean())
        factordatafillna = factordatafillna.append(a)

    groupby方式实现

    采用groupby计算,详细见代码注释

    
    df = pd.DataFrame({'code':[1,2,3,4,5,6,7,8],
                       'value':[np.nan,5,7,8,9,10,11,12],                   
                       'value2':[5,np.nan,7,np.nan,9,10,11,12],
                       'indstry':['农业1','农业1','农业1','农业2','农业2','农业4','农业2','农业3']},
                        columns=['code','value','value2','indstry'],
                        index=list('ABCDEFGH'))
    
    # 只留下需要处理的列
    cols = [col for col in df.columns if col not in['code','indstry']]
    # 分组的列
    gp_col = 'indstry'
    # 查询nan的列
    df_na = df[cols].isna()
    # 根据分组计算平均值
    df_mean = df.groupby(gp_col)[cols].mean()
    
    print(df)
    
    # 依次处理每一列
    for col in cols:
        na_series = df_na[col]
        names = list(df.loc[na_series,gp_col])     
    
        t = df_mean.loc[names,col]
        t.index = df.loc[na_series,col].index
    
        # 相同的index进行赋值     
        df.loc[na_series,col] = t
    
    print(df)
    code  value  value2 indstry
    A     1    NaN     5.0     农业1
    B     2    5.0     NaN     农业1
    C     3    7.0     7.0     农业1
    D     4    8.0     NaN     农业2
    E     5    9.0     9.0     农业2
    F     6   10.0    10.0     农业4
    G     7   11.0    11.0     农业2
    H     8   12.0    12.0     农业3
       code  value  value2 indstry
    A     1    6.0     5.0     农业1
    B     2    5.0     6.0     农业1
    C     3    7.0     7.0     农业1
    D     4    8.0    10.0     农业2
    E     5    9.0     9.0     农业2
    F     6   10.0    10.0     农业4
    G     7   11.0    11.0     农业2
    H     8   12.0    12.0     农业3
    
    展开全文
  • pandas: groupby()分组求平均值

    万次阅读 2018-07-01 15:47:00
    两种方式都可以data.groupby('Pclass')['Fare'].mean() data.groupby('Pclass').mean()['Fare']
    两种方式都可以
    data.groupby('Pclass')['Fare'].mean()
    data.groupby('Pclass').mean()['Fare']
    展开全文
  • 第一种:按照‘分组的名字’进行分组, 然后的列名’列各组的平均值&最大值: 求平均值: df.groupby('分组的名字')['的列名'].mean() 最大值: df.groupby('分组的名字')['的列名'].max() 第二...
    第一种:按照‘分组的名字’进行分组, 然后求‘求的列名’列各组的平均值&最大值: 
    求平均值:
    df.groupby('分组的名字')['求的列名'].mean()

    求最大值:

    df.groupby('分组的名字')['求的列名'].max()

    第二种:是先分组, 然后求所有列分组后的平均值, 再取出‘求的列名’列的平均值&最大值:

    求平均值:

    df.groupby('分组的名字').mean()['求的列名']

    求最大值:

    df.groupby('分组的名字').max()['求的列名']

    展开全文
  • pandas计算移动平均值

    2021-03-20 23:30:05
    本人今天遇到遇到一个任务,计算同月份合约当天各合约总持仓量的移动平均值。立刻写下了这个函数: group = df.groupby(['合约系列','date']) f = pd.DataFrame(group['持仓量'].sum().rolling(20).mean()) 上交...

    本人今天遇到遇到一个任务,计算同月份合约当天各合约总持仓量的移动平均值。立刻写下了这个函数:

    
    group = df.groupby(['合约系列','date'])
    f = pd.DataFrame(group['持仓量'].sum().rolling(20).mean())

    上交后,提出要求,不行,这个数据不行,存在一些数据,因为不足20天,导致结果为NAN。一开始没想到思路,然后就问问群里的大佬,大佬给的第一个建议,写个功能函数。但是因为数据比较复杂,非连续数据,光是分类就很难,就继续询问。

    知道一位大佬给了个答案:

    group = df.groupby(['合约系列','date'])
    f = pd.DataFrame(group['持仓量'].sum().rolling(20,min_periods = 1).mean())

    min_periods:#表示窗口最少包含的观测值为1

    意味着数据不满20天的,自动有一天算一天,计算均值。如第19天数据,此时显示的结果就是前面19天的均值。

    展开全文
  • pandas根据日期某一列的年平均值

    千次阅读 2020-03-11 18:58:16
    对于这种,读进来日期不是日期格式,并且有时候一天有很多条数据,一天没有数据的情况,根据年份合并star_rating这一栏的平均值。 读入数据并删除无关列 pcfr = pd.read_excel('microwave.xlsx') df = pcfr[['...
  • 先观察一下要处理的数据是怎样的,原始文件是有五组分隔开的数据,第一行是表示组名,第二行是列标签,第三行开始才是真正的数据。很容易就会想到使用pandas来处理这...而后面使用mean()求平均时,要使用标签Year和Mon
  • 学习《Python3爬虫、数据清洗与可视化实战》时自己的一些实践。 DataFrame分组操作 ...# 计算'成交量'按'位置'分组平均值 grouped1 = df['成交量'].groupby(df['位置']).mean() # print(grouped1)
  • pandas分组操作

    2020-12-31 00:09:35
    Pandas中,上述的数据处理操作主要运用groupby完成,这篇文章就介绍一下groupby的基本原理及对应的agg、transform和apply操作。 为了后续图解的方便,采用模拟生成的10个样本数据,代码和数据如下: company=["A",...
  • Pandas 累计和分组

    2020-03-06 20:21:28
    mean:平均数 median:中位数 min:最小值 max:最大 count:计数 first/last: 第⼀项和最后⼀项 std: 标准差 var:方差 mad:均值绝对方差 prod:所有项乘积 # 准备数据 # 我们这次准备数据时候⽤seaborn提供的...
  • pandas分组统计 - groupby功能

    万次阅读 多人点赞 2019-01-05 11:11:16
    Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新,然后函数执行结果被合并到最终的结果对象中。 df.groupby(by=None, axis=0, level=None, as_index=True, s...
  • pandas分组与聚合

    千次阅读 2019-04-28 11:49:30
    Python数据分析:pandas分组与聚合 分组(groupby): 对数据集进行分组,然后对每组进行统计分析 SQL能够对数据进行过滤,分组聚合 pandas能利用groupby进行更加复杂的分组运算 分组运算过程 split(拆分...
  • Python-pandas:每组均值填充缺失

    千次阅读 2021-03-16 15:09:35
    使用transform: >>> df name value 0 A 1 1 A NaN 2 B NaN 3 B 2 4 B 3 5 B 1 6 C 3 7 C NaN 8 C 3 >... df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
  • 对所有列进行基本的统计求值: users.describe(include='all')
  • #根据第0列分组,lables不加时显示具体的分组情况,这里是等分的。bin=10是10等分,也可以是具体的list表示分法,如bin = [1,2,3]。 pd['Categories'] = pd.cut(pd[0], 10, labels=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10...
  • 学习汇总:点这里 分组 任何分组(groupby)操作都涉及原始对象的以下操作之一。它们是 : 分割对象 应用一个函数 结合的结果 ...在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些...import pandas as p...
  • Pandas 聚合求和,聚合均值

    千次阅读 2020-06-07 20:29:23
    最近参加一个比赛,需要统计一些数据,使用了pandas。数据样例如下图所示: user_id industry click_times 0 1 2 0 1 1 0 2 2 1 1 2 1 2 ...
  • 使用agg函数 import pandas as pd data = pd.read_csv('test.csv') df = pd.DataFrame(data) df = df.groupby('date').agg(['size'])
  • 通过“分组依据”,我们指的是涉及以下一个或多个步骤的过程: 根据某些标准将数据拆分为组。 将功能独立应用于每个组。 将结果组合到数据结构中。 其中,分割步骤是最直接的。实际上,在许多情况下,我们可能希望...
  • 分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况 1 什么分组与聚合 2 分组API DataFrame.groupby(key, as_index=False) key:分组的列数据,可以多个 案例:不同颜色的不同...
  • 刚刚使用Python进行...本文将介绍Pandas操作的最后一个部分,前两篇分别是: 《Pandas的基础操作:介绍/创建/查看数据/赋值/常用函数》:https://blog.csdn.net/weixin_42969619/article/details/96863875 《...
  • Padans里的聚合统计即是应用分组的方法对数据框进行聚合统计,常见的有min(最小)、max(最大)、avg(平均值)、sum(求和)、var()、std(标准差)、百分位数、中位数等。 数据框概览 可以通过describe方法查看当前数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,160
精华内容 2,864
关键字:

pandas分组求平均值