pandas 数据归一化以及行删除例程的方法


Posted in Python onNovember 10, 2018

如下所示:

#coding:utf8
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
 
# 如果有id列,则需先删除id列再进行对应操作,最后再补上
# 统计的时候不需要用到id列,删除的时候需要考虑
# delete row
def row_del(df, num_percent, label_len = 0):
	#print list(df.count(axis=1))
	col_num = len(list(list(df.values)[1])) - label_len # -1为考虑带标签
	if col_num<0:
		print 'Error'
	#print int(col_num*num_percent)
	return df.dropna(axis=0, how='any', thresh=int(col_num*num_percent))
 
# 如果有字符串类型,则报错
# data normalization -1 to 1
# label_col: 不需考虑的类标,可以为字符串或字符串列表
# 数值类型统一到float64
def data_normalization(df, label_col = []):
	lab_len = len(label_col)
	print label_col
	if lab_len>0:
		df_temp = df.drop(label_col, axis = 1)
		df_lab = df[label_col]
		print df_lab
	else:
		df_temp = df
	max_val = list(df_temp.max(axis=0))
	min_val = list(df_temp.min(axis=0))
	mean_val = list((df_temp.max(axis=0) + df_temp.min(axis=0)) / 2)
	nan_values = df_temp.isnull().values
	row_num = len(list(df_temp.values))
	col_num = len(list(df_temp.values)[1])
	for rn in range(row_num):
		#data_values_r = list(data_values[rn])
		nan_values_r = list(nan_values[rn])
		for cn in range(col_num):
			if nan_values_r[cn] == False:
				df_temp.values[rn][cn] = 2 * (df_temp.values[rn][cn] - mean_val[cn])/(max_val[cn] - min_val[cn])
			else:
				print 'Wrong'
	for index,lab in enumerate(label_col):
		df_temp.insert(index, lab, df_lab[lab])
	return df_temp
 
 
# 创建一个带有缺失值的数据框:
df = pd.DataFrame(np.random.randn(5,3), index=list('abcde'), columns=['one','two','three'])
df.ix[1,:-1]=np.nan
df.ix[1:-1,2]=np.nan
df.ix[0,0]=int(1)
df.ix[2,2]='abc'
 
# 查看一下数据内容:
print '\ndf1'
print df
 
print row_del(df, 0.8)
 
print '-------------------------'
 
df = data_normalization(df, ['two', 'three'])
print df
 
print df.dtypes
 
print (type(df.ix[2,2]))

以上这篇pandas 数据归一化以及行删除例程的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现发送邮件及附件功能
Mar 02 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
python学生信息管理系统
Mar 13 Python
Python异常处理操作实例详解
Aug 28 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
使用python实现mqtt的发布和订阅
May 05 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
浅谈Python中的字符串
Jun 10 Python
python 重命名轴索引的方法
Nov 10 #Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 #Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 #Python
对python创建及引用动态变量名的示例讲解
Nov 10 #Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 #Python
在Python中定义一个常量的方法
Nov 10 #Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 #Python
You might like
星际争霸中的热键
2020/03/04 星际争霸
php读取数据库信息的几种方法
2008/05/24 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
Python实现二叉堆
2016/02/03 Python
python对象及面向对象技术详解
2016/07/19 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python支付宝支付示例详解
2019/08/22 Python
python db类用法说明
2020/07/07 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
商务专员岗位职责
2013/11/23 职场文书
家长会学生演讲稿
2014/04/26 职场文书
前台接待岗位职责
2015/02/03 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
小学作文之描写天气
2019/08/15 职场文书
JavaScript获取URL参数的方法分享
2022/04/07 Javascript