python筛选数据求均值_Python Pandas实现数据分组求平均值并填充nan的示例
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的示例相关推荐
- python pandas写入数据后保存_python读取MySQL数据使用pandas写入到csv,并保存列名
实现的功能:通过pymysql连接MySQL数据库,查询所需数据,然后使用pandas写入到csv文件,并且写入包含数据列名. import sys import pandas as pd impor ...
- python中mean的用法_Python Pandas dataframe.mean()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...
- python 生成html文件浏览器_python如何将数据生成html文件+浏览器中文显示乱码问题...
需求:从msysql数据库查询数据,并生成html文件,后自动发送邮件(html格式),在网上找了许久,终于找到2种解决方法! 一.近来在网上采集数据,想把采集下来的数据整合成html的形式保存.以便 ...
- 用python的五种方式_Python加载数据的5种不同方式(收藏)
数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...
- python处理时间的标准函数库_python+pandas+时间、日期以及时间序列处理方法
先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫 ...
- python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...
- python中mean的用法_Python Pandas Series.mean()用法及代码示例
Pandas 系列是带有轴标签的一维ndarray.标签不必是唯一的,但必须是可哈希的类型.该对象同时支持基于整数和基于标签的索引,并提供了许多方法来执行涉及索引的操作. Pandas Series. ...
- python table数据抓取_Python爬虫:数据抓取工具及类库详解
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: ncepu_Chen PS:如有需要Python学习资料的小伙伴可以 ...
- python读取pcap获得端口_Python处理网络数据包示例(pcapy读pcap文件)
Python处理网络数据包示例(pcapy读pcap文件) 最近在围观python,找了个pcapy处理pcap数据的代码 非常非常久以前的东西了,应该是在项目组做的半成品吧.今天重装机器,不经意翻出 ...
最新文章
- BciPy: 一款基于Python用于BCI研究的开源软件
- windows 8 突然不能上网 LSP 二种修复方法
- Winform中实现新增和更新共用一个页面的示例流程
- clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
- Windows 8 各版本功能区别一览表
- 你知道哪些开源基金会?
- java耗时操作阻塞_spring boot高并发下耗时操作的实现方法
- 荷兰特温特大学研究人员、博士后招聘
- laravel添加语言包
- 三维动画制作软件有哪些?
- 腾讯随星播 v2.2.1 官方版​
- Git 提交大文件提示 fatal: The remote end hung up unexpectedly
- java hotspot server_Java HotSpot(TM)64位服务器VM警告
- CStdioFile 追加文件内容
- python array 行向量 列向量
- php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表
- Java猜数字大小游戏
- centos使用yum安装xtrabackup
- Qmail+vpopmail+daemontools+ucspi邮件系统安装及其SMTP认证配置
- 计算机基础运算器实验,基本运算器实验
热门文章
- 深入理解 Redis Template及4种序列化方式__spring boot整合redis实现RedisTemplate三分钟快速入门
- WebMvcConfigurerAdapter过时的替换方法
- python语言三大基本控制结构_Python基础(4) 控制结构
- html+dom+深入,DOM 深入学习 - 1
- linux的备份命令及其参数,linux cpio命令参数及用法详解--linux备份文件命令
- android 刷新view位置,Android View刷新机制实例分析
- Java反射 Class类
- (STL,set,priority_queue)丑数
- c++ stl 容器 迭代器 stl用法示例
- 震惊! Leftmost Digit