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 相关文章推荐
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
24式加速你的Python(小结)
Jun 13 Python
Python中拆分字符串的操作方法
Jul 23 Python
给我一面国旗 python帮你实现
Sep 30 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
利用python汇总统计多张Excel
Sep 22 Python
python Zmail模块简介与使用示例
Dec 19 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获取新浪微博数据API实例
2013/11/12 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
深入理解Python中range和xrange的区别
2017/11/26 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
python实现简易动态时钟
2018/11/19 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
python3 logging日志封装实例
2020/04/08 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
焊接专业毕业生求职信
2013/10/01 职场文书
园林施工员岗位职责
2013/12/11 职场文书
文秘大学生求职信
2014/02/25 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
个人先进事迹材料
2014/12/29 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
汽车销售员工作总结
2015/08/12 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
Python中time与datetime模块使用方法详解
2022/03/31 Python