Python Pandas实现数据分组求平均值并填充nan的示例


Posted in Python onJuly 04, 2019

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

DataFrame数据格式

fillna方式实现

groupby方式实现

DataFrame数据格式

以下是数据存储形式:

Python Pandas实现数据分组求平均值并填充nan的示例

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

以上这篇Python Pandas实现数据分组求平均值并填充nan的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化测试之setUp与tearDown实例
Sep 28 Python
python中的lambda表达式用法详解
Jun 22 Python
python字典快速保存于读取的方法
Mar 23 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python使用matplotlib绘制雷达图
Oct 18 Python
python实现画出e指数函数的图像
Nov 21 Python
python 字典套字典或列表的示例
Dec 16 Python
Python telnet登陆功能实现代码
Apr 16 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
Python实现生活常识解答机器人
Jun 28 Python
pybind11在Windows下的使用教程
Jul 04 #Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 #Python
Pycharm简单使用教程(入门小结)
Jul 04 #Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 #Python
Python读取xlsx文件的实现方法
Jul 04 #Python
使用python进行广告点击率的预测的实现
Jul 04 #Python
python命令行工具Click快速掌握
Jul 04 #Python
You might like
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
javascript表单验证大全
2015/08/12 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
python制作花瓣网美女图片爬虫
2015/10/28 Python
分享Python字符串关键点
2015/12/13 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
python实现手机销售管理系统
2019/03/19 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
个人社会实践自我鉴定
2014/03/24 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2016高考感言
2015/08/01 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫