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实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
Python绘制3D图形
May 03 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
python银行系统实现源码
Oct 25 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
python3 配置logging日志类的操作
Apr 08 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
Python实现归一化算法详情
Mar 18 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生成N个不重复的随机数实例
2013/11/12 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
jcrop基本参数一览
2013/07/16 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
javaScript语法总结
2016/11/25 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
浅谈Python NLP入门教程
2017/12/25 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
keras多显卡训练方式
2020/06/10 Python
哪些是python中web开发框架
2020/06/17 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
物业工程部主管岗位职责
2015/04/16 职场文书
新员工辞职信范文
2015/05/12 职场文书
商业计划书格式、范文
2019/03/21 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL