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常用函数详解
Sep 13 Python
解决python 输出是省略号的问题
Apr 19 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
详解python:time模块用法
Mar 25 Python
Python assert语句的简单使用示例
Jul 28 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
Python计算IV值的示例讲解
Feb 28 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
Python如何读写二进制数组数据
Aug 01 Python
详解python中的异常和文件读写
Jan 03 Python
如何利用python 读取配置文件
Jan 06 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 base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
浅析JS运动
2015/12/28 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python进程和线程用法知识点总结
2019/05/28 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
《凡卡》教学反思
2014/04/09 职场文书
投标授权委托书范文
2014/08/02 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers