数据清洗

numpy、pandas做数据清洗

大兔子大兔子 提交于 2020-04-05 20:15:45
<!doctype html> numpy、pandas做数据清洗 numpy、pandas做数据清洗 numpy、pandas空值的清洗 有两种方式 删除空值所在的行数据 将缺失的行或者列进行删除 使用到的数据判断方法: isnull:判断数据是否是为空,如果为空返回True,否则返回False notnull:判断数据是否非空,如果为空返回False,否则返回True any:与isnull组合判断 dropna:删除数据中的空的行数据或者列数据,axis参数表示与其他相反,行为0,列为1 fillna:对操作数据进行填充参数method='ffill'表示向前填充,'bfill'表示向后填充 方式一的实例: 方法一: from pandas import DataFrame,Series df = DataFrame(data = np.random.randint(0,100,size=(7,5))) #创建一个7行5列的二维数组 #随机取值从0到100,形式是7行5列的数组 #设置是三个空值 df.iloc[3,4] = None #三行四列的值为空 df.iloc[2,2] = np.nan #设置2行2列的值为NAN df.iloc[5,3] = None #设置5行3列的值为空 df #panads会自动将None的空值转换成NaN #清洗空值的两种方式

数据清洗

倖福魔咒の 提交于 2020-03-30 15:00:30
脏数据的特征 每个与数据打交道的人都应该听说过“脏数据”(dirty data)一词。脏数据会破坏数据集的完整性,它的某些特征是不完整,不准确,不一致,或者重复的。有必要指出的是,数据的清洗是必不可少的。从乱糟糟的数据无法生产出良好的结果。你可能已经听说过“垃圾进,垃圾出”(Garbage in, garbage out.)这句话了。 不完整 “不完整”是指,有些必要特征空缺。例如,假设你的任务是预测房价,而“房子的区域”对于良好的预测至关重要,但这个值却是缺失的。这样的话预测房价可能对你来说就有很大的挑战性了,并且你的模型也可能表现欠佳。 不一致 “不准确”和“不一致”就是指,技术上来说数值是正确的,但在具体语境下却是错误的。例如,当一名员工更改了自己的地址,并且未更新,又或者,某项数据有很多版本,但数据科学家拿到的是旧版。 重复 “重复”是一个常见的问题。这里作者分享了一个以前在电子商务公司工作时发生的事情。“按照计划,当访问者单击“收取收据”按钮时,网站会向服务器发送一个响应,这就使得我们能够计数已收取了收据的用户数量。该网站运行良好,直到一天某个变化发生了,但我对此一无所知。前端开发人员添加了另一个响应,在有人成功收取了收据时发送。理由是某些收据可能短缺,他们想记下单击了该按钮以及收取了收据的访问者。那时,两个响应会被发送到同一日志表。我看着我的报表工具

Python 数据清洗

拟墨画扇 提交于 2020-03-03 17:49:27
文章目录 一.数据清洗与准备 1.缺失值 过滤(删除缺失值) 补全 2.数据转换 去重 series的逐元素转换:map 替换特定值replace 重命名索引 分组,划分区间 随机抽样 随机重排序 哑变量 3.字符串操作 内建字符串方法 向量化字符串函数 二.数据合并与重塑 1. 数据库风格的DataFrame连接 2. 轴向拼接 3. 重塑和透视 长数据(冗余数据)透视为宽数据(正常数据) 宽透视为长 三.数据聚合与分组-groupby-详见第10章 一.数据清洗与准备 1.缺失值 NaN(np.nan): 对数值型数据,浮点值NaN(not a number) NA(not available) None 均为缺失值,通过data.isnull()检测,反方法:data.notnull() 过滤(删除缺失值) newdata = data.dropna() 等价于 data[data.notnull()] 默认删除含有缺失值的整行 可选参数: how=‘all’:当一行全是缺失值才删除该行,否则不删除 axis=1:删除列 thresh=n:保留含有n个观测值的行 补全 newdata = data.fillna(value) :将缺失值替换为value 为不同列的NA设置不同的填充值:传入字典data.fillna({列名:value,…}) 常用可选参数(详见文档字符串):

数据清洗 | 通过 Z-Score 方法判断异常值

谁说我不能喝 提交于 2020-02-27 13:30:58
判断异常值方法:Z-Score 计算公式 Z = (X-μ)/σ 其中μ为总体平均值,X-μ为离均差,σ表示标准差。z的绝对值表示在标准差范围内的原始分数与总体均值之间的距离。当原始分数低于平均值时,z为负,以上为正。 代码演示 1 生成一个 df 1 import pandas as pd # 导入pandas库 2 # 生成异常数据 3 df = pd.DataFrame({'col1': [1, 120, 3, 5, 2, 12, 13], 4 'col2': [12, 17, 31, 53, 22, 32, 43]}) 2 通过Z-Score方法判断异常值 1 df_zscore = df.copy() # 复制一个用来存储Z-score得分的数据框 2 cols = df.columns # 获得数据框的列名 3 4 for col in cols: # 循环读取每列 5 df_col = df[col] # 得到每列的值 6 z_score = (df_col - df_col.mean()) / df_col.std() # 计算每列的Z-score得分 7 # 判断Z-score得分是否大于2.2,(此处2.2代表一个经验值),如果是则是True,否则为False 8 df_zscore[col] = z_score.abs() > 2.2 9 10 print

python数据清洗工具、方法、过程整理归纳(二、数据清洗之文件读写——读取csv、Excel和MySQL数据)

寵の児 提交于 2020-02-27 11:03:33
文章目录 3 文件读写 3.1 CSV文件读写 3.2 Excel的读写 3.3 MySQL数据库交互 3 文件读写 3.1 CSV文件读写 pandas内置了10多种数据源读取函数,常见的就是CSV和EXCEL 使用read_csv方式读取,结果为dataframe格式 在读取csv文件时,文件名称尽量是英文 参数较多,可以自行控制,但很多时候用默认参数 读取csv时,注意编码,常用编码为utf-8、gbk、gbk2312和gb18030等 使用to_csv方法快速保存 import numpy as np import pandas as pd import os #用于更改文件路径 os . getcwd ( ) #当前文件路径 'D:\\code\\jupyter\\course' os . chdir ( 'D:\\code\\jupyter\\course\\代码和数据' ) #更改文件存放路径 baby = pd . read_csv ( 'sam_tianchi_mum_baby.csv' , encoding = 'utf-8' ) #默认是utf-8。read_csv会把数据的第一行当做表头即‘列索引’,行索引默认从0开始 baby . head ( 5 ) user_id birthday gender 0 2757 20130311 1 1 415971

SAS数据清洗之字符和数字处理

孤街醉人 提交于 2020-02-23 16:02:21
SAS数据清洗: 由于SAS数据集之间的关系一般不会用到,只是在proc sql中有所涉及,至今尚未运用过用于数据分析,所以在这里只讲单个数据集的处理。 在proc sql中我们可以看到:在定义数据集时涉及到字段名,字段属性,字段标签这三个最常用。我们在数据清洗时涉及到的数据集字段的处理,主要也就是围绕着字段名、字段属性和字段标签来进行处理。(对数据集结构的处理也就是对字段的增删改) 修改数据集名称和标签(label) 增加字段很简单,只需要在data步新建一个变量,对变量进行赋值即可。 删除变量可以使用drop和keep二者二选一。 下面谈一下最复杂的修改字段: 修改字段名最简单复杂的方法可以利用增加字段和删除字段二者结合。然后就是用sas中的rename关键字进行处理,格式为rename=(原字段名=新字段名)。 修改字段的标签:(定义label attrib label 变量名=label名) 修改使用modify 数据集名;label 变量名=label名。其中modify可以用于修改rename format和label。 修改sas的数据类型。 在sas中只有两种数据类型:数值型和字符型。日期在sas中存储形式是数值型,只是在显示时使用日期的format显示。 所以主要就是涉及到数值型和字符型之间的转换 数值转换为字符: data; x=2557898; y=put(x

python数据分析(一)-----numpy

微笑、不失礼 提交于 2020-02-14 01:55:21
Python数据分析与展示 掌握表示、清洗、统计和展示数据的能力 列表和数组: 列表数据类型可以不同 3.1413, ‘pi’, 3.1404, [3.1401, 3.1349], ‘3.1376’ 数组数据类型相同 3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376 高维数据:字典类型或数据表示格式(键值对) { “firstName” : “Tian” , “lastName” : “Song” , “address” : { “streetAddr” : “中关村南大街 5 号” , “city” : “北京市” , “zipcode” : “ 100081 ” } , “prof” : [ “Computer System” , “Security” ] } Numpy import numpy as np N维数组对象:ndarray Python已有列表类型,为什么需要一个数组对象(类型) 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据 设置专门的数组对象,经过优化,可以提升这类应用的运算速度 科学计算中,一个维度所有数据的类型往往相同,数组对象采用相同的数据类型,有助于节省运算和存储空间 ndarray是一个多维数组对象,由两部分组成: 实际的数据 描述这些数据的元数据(数据维度、数据类型等)

6.数据清洗之excel文件读写

自闭症网瘾萝莉.ら 提交于 2020-02-08 17:04:35
说明: *使用read_excel读取,读取后的结果为dataframe格式 *读取excel文件和csv文件参数大致一致,但要考虑工作表sheet页 *参数较多,可以自行控制,但很多时候用默认参数 *读取excel时,注意编码,常用编码为utf-8、gbk、gbk2312和gb18030等 *使用to_excel方法快速保存为xlsx格式 ———————————————— #有多个工作页时,指定哪个工作簿 #sheet_name='你的工作页名字'或sheet_name='0'或'1' df=pd.read_excel('Vehicle No.0_Fragment No.0.xlsx',sheet_name='sheet1') df.head(5) df=pd.read_excel('Vehicle No.0_Fragment No.0.csv',encoding='utf-8',nrows=10) import os os.getcwd() df.to_excel('a.xlsx',sheet_name='sheet1',index=False,encoding='utf-8',) 来源: CSDN 作者: DLANDML 链接: https://blog.csdn.net/l641208111/article/details/104224354

数据清洗之数据统计--分组 聚合 分组对象与apply函数 透视图与交叉表

ぃ、小莉子 提交于 2020-02-06 14:55:44
数据清洗之数据统计 In [ ]: import pandas as pd import numpy as np import os os.chdir(r'F:\CSDN\课程内容\代码和数据') 在线杂货店订单数据 customer :消费者ID,一个消费者可能有多个订单 order :订单ID,订单的唯一标识,不重复 total_items :订单中购买的商品数量 discount% :收到的总折扣百分比 weekday :下单时间:星期几下单,1-7 为 周一至周日 hour :下单时间:几点下单,0-23 为二十四小时制 Food% :食物在订单总价中占比,食物为非生鲜类食物 Fresh% :生鲜类食物在订单总中占比 Drinks% :饮品在订单总价占比,由于高糖税可能导致总折扣为负 Home% :家居用品在订单总价中占比 Beauty% : 美妆类产品在订单总价中占比 Health% :保健类产品在订单总价中占比 Baby% :母婴类产品在订单总价占比 Pets% :宠物用品在订单总价占比 In [ ]: df = pd.read_csv('online_order.csv',encoding = 'gbk',dtype={'customer':str,'order':str}) In [ ]: df.dtypes 1. 数据分组运算 df.groupby('a') df

CSV格式数据清洗

十年热恋 提交于 2020-02-01 01:09:03
描述 附件是一个CSV文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ (1)去掉每个数据前后空格,即数据之间仅用逗号(,)分割;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ (2)清洗后打印输出。 输入输出示例 附件 见附录 代码 fo = open ( "data.csv" ) for line in fo : line = line . replace ( " " , "" ) print ( line , end = "" ) 来源: CSDN 作者: 赖亦无 链接: https://blog.csdn.net/weixin_43012724/article/details/103655209