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当中的数据类型和变量
Apr 25 Python
详解Python编程中包的概念与管理
Oct 16 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
python实现指定ip端口扫描方式
Dec 17 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Pytorch释放显存占用方式
Jan 13 Python
python global和nonlocal用法解析
Feb 03 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
python中opencv实现图片文本倾斜校正
Jun 11 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
js运动应用实例解析
2015/12/28 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
python获得一个月有多少天的方法
2015/06/04 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
学生党员检讨书范文
2014/12/27 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL