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

DataFrame数据格式

fillna方式实现

groupby方式实现

DataFrame数据格式

以下是数据存储形式:

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 Pandas实现数据分组求平均值并填充nan的示例相关推荐

  1. python pandas写入数据后保存_python读取MySQL数据使用pandas写入到csv,并保存列名

    实现的功能:通过pymysql连接MySQL数据库,查询所需数据,然后使用pandas写入到csv文件,并且写入包含数据列名. import sys import pandas as pd impor ...

  2. python中mean的用法_Python Pandas dataframe.mean()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...

  3. python 生成html文件浏览器_python如何将数据生成html文件+浏览器中文显示乱码问题...

    需求:从msysql数据库查询数据,并生成html文件,后自动发送邮件(html格式),在网上找了许久,终于找到2种解决方法! 一.近来在网上采集数据,想把采集下来的数据整合成html的形式保存.以便 ...

  4. 用python的五种方式_Python加载数据的5种不同方式(收藏)

    数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...

  5. python处理时间的标准函数库_python+pandas+时间、日期以及时间序列处理方法

    先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫 ...

  6. python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...

  7. python中mean的用法_Python Pandas Series.mean()用法及代码示例

    Pandas 系列是带有轴标签的一维ndarray.标签不必是唯一的,但必须是可哈希的类型.该对象同时支持基于整数和基于标签的索引,并提供了许多方法来执行涉及索引的操作. Pandas Series. ...

  8. python table数据抓取_Python爬虫:数据抓取工具及类库详解

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: ncepu_Chen PS:如有需要Python学习资料的小伙伴可以 ...

  9. python读取pcap获得端口_Python处理网络数据包示例(pcapy读pcap文件)

    Python处理网络数据包示例(pcapy读pcap文件) 最近在围观python,找了个pcapy处理pcap数据的代码 非常非常久以前的东西了,应该是在项目组做的半成品吧.今天重装机器,不经意翻出 ...

最新文章

  1. BciPy: 一款基于Python用于BCI研究的开源软件
  2. windows 8 突然不能上网 LSP 二种修复方法
  3. Winform中实现新增和更新共用一个页面的示例流程
  4. clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
  5. Windows 8 各版本功能区别一览表
  6. 你知道哪些开源基金会?
  7. java耗时操作阻塞_spring boot高并发下耗时操作的实现方法
  8. 荷兰特温特大学研究人员、博士后招聘
  9. laravel添加语言包
  10. 三维动画制作软件有哪些?
  11. 腾讯随星播 v2.2.1 官方版​
  12. Git 提交大文件提示 fatal: The remote end hung up unexpectedly
  13. java hotspot server_Java HotSpot(TM)64位服务器VM警告
  14. CStdioFile 追加文件内容
  15. python array 行向量 列向量
  16. php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表
  17. Java猜数字大小游戏
  18. centos使用yum安装xtrabackup
  19. Qmail+vpopmail+daemontools+ucspi邮件系统安装及其SMTP认证配置
  20. 计算机基础运算器实验,基本运算器实验

热门文章

  1. 深入理解 Redis Template及4种序列化方式__spring boot整合redis实现RedisTemplate三分钟快速入门
  2. WebMvcConfigurerAdapter过时的替换方法
  3. python语言三大基本控制结构_Python基础(4) 控制结构
  4. html+dom+深入,DOM 深入学习 - 1
  5. linux的备份命令及其参数,linux cpio命令参数及用法详解--linux备份文件命令
  6. android 刷新view位置,Android View刷新机制实例分析
  7. Java反射 Class类
  8. (STL,set,priority_queue)丑数
  9. c++ stl 容器 迭代器 stl用法示例
  10. 震惊! Leftmost Digit