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 17 Python
Python中将字典转换为XML以及相关的命名空间解析
Oct 15 Python
Pycharm远程调试openstack的方法
Nov 21 Python
在windows下Python打印彩色字体的方法
May 15 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
对python指数、幂数拟合curve_fit详解
Dec 29 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
Pycharm远程调试原理及具体配置详解
Aug 08 Python
python解析yaml文件过程详解
Aug 30 Python
基于Python生成个性二维码过程详解
Mar 05 Python
python 可视化库PyG2Plot的使用
Jan 21 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
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP中cookies使用指南
2007/03/16 PHP
php学习笔记之面向对象
2014/11/08 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
YII框架关联查询操作示例
2019/04/29 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
在Django的URLconf中使用命名组的方法
2015/07/18 Python
python八皇后问题的解决方法
2018/09/27 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
解除劳动关系协议书范文
2014/09/11 职场文书
绵山导游词
2015/02/05 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书