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 相关文章推荐
urllib2自定义opener详解
Feb 07 Python
Python正则捕获操作示例
Aug 19 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python+tkinter使用40行代码实现计算器功能
Jan 30 Python
对Python3使运行暂停的方法详解
Feb 18 Python
python分割一个文本为多个文本的方法
Jul 22 Python
python生成器推导式用法简单示例
Oct 08 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
Django中FilePathField字段的用法
May 21 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
python中zip()函数遍历多个列表方法
Feb 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
python实现定制交互式命令行的方法
2014/07/03 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python对XML文件的操作实现代码
2020/03/27 Python
如何表示python中的相对路径
2020/07/08 Python
会计与审计毕业生自荐信范文
2013/12/30 职场文书
土木工程专业个人求职信
2013/12/30 职场文书
学雷锋标语
2014/06/25 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
部门2015年度工作总结
2015/04/29 职场文书