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列表与元组详解实例
Nov 01 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
使用PDB模式调试Python程序介绍
Apr 05 Python
python下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
TensorFlow实现卷积神经网络CNN
Mar 09 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
pandas重新生成索引的方法
Nov 06 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
js实现简单计算器
2015/11/22 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
python服务器端收发请求的实现代码
2014/09/29 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
python 字段拆分详解
2019/12/17 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
毕业生大学生活自我总结
2014/01/31 职场文书
年级组长自我鉴定
2014/02/22 职场文书