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 文件处理注意事项总结
Apr 10 Python
Python中enumerate函数代码解析
Oct 31 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
快速了解Python相对导入
Jan 12 Python
Python WEB应用部署的实现方法
Jan 02 Python
python+openCV利用摄像头实现人员活动检测
Jun 22 Python
python3获取当前目录的实现方法
Jul 29 Python
Python编写带选项的命令行程序方法
Aug 13 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
Python有参函数使用代码实例
Jan 06 Python
python数据类型强制转换实例详解
Jun 22 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
中英文字符串翻转函数
2008/12/09 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
用jquery仿做发微博功能示例
2014/04/18 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
在Python下尝试多线程编程
2015/04/28 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python引用计数操作示例
2018/08/23 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
Python中qutip用法示例详解
2020/10/02 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
销售业务实习自我鉴定
2013/09/23 职场文书
财务会计毕业生自荐信
2013/11/02 职场文书
国际贸易个人求职信范文
2014/01/04 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
西柏坡导游词
2015/02/05 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书