数据分析2 - 数据导入及处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析2 - 数据导入及处理相关的知识,希望对你有一定的参考价值。
参考技术A pandas 包中的 read_csv 函数: read_csv(file, encoding)pandas.read_csv参数整理
pandas 包中的 read_table 函数: read_table(file,names=[列名1,列名2,...],sep="",encoding,...)
当导入中文时存在问题的时候,可以设置 engine = 'python' 解决问题
pandas 包中的 read_excel 函数: read_excel(file,sheetname,names)
to_csv 函数: dataFrame.to_csv(file,sep="",index,header)
把 dataFrame 中,行相同的数据只保留一行
相关函数:
缺失值的处理方式:1. 数据补齐;2. 删除对应缺失行;3. 不处理
相关函数:
相关函数:
字段抽取是根据指定字段下的一组数据的开始和结束位置,抽取形成新的列
相关函数:
字段截取函数:slice(start, stop)
字段拆分指按照固定的字符,拆分已有字符串
相关函数:
记录抽取指根据一定的条件,对数据进行抽取
相关函数:
dataFrame[condition] condition 为一 Series,元素数量与 dataFrame 行数相等,元素为 boolean 值,决定是否抽取记录
常用的条件类型:
随机抽样指随机从数据中,按照一定的函数或者比例抽取数据
相关函数:
numpy.random.seed(seed=2) 设置随机种子
dataFrame.sample(n, frac, replace=False)
按照某一字段将 dataFrame 分为几组,并在每个分组抽取样本
相关函数:
记录合并指将两个以上结构相同或不同的数据框,合并成一个数据框
相关函数:
字段合并指将同意数据框中的不同列进行合并,形成新的列
字段合并方法:x = x1 + x2 + ... (x 指数据列,Series)
相关函数:
字段匹配指根据各表共有的关键字段,把各表所需的记录一一对应起来。即把两个 dataFrame 关联起来
相关函数:
简单计算指通过对已有字段进行加减乘除等运算,得出新的字段
数据标准化指将数据按比例缩放,使之落入到特定区间
0-1 标准化计算
相关函数:
数组分组指根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不通的区间进行研究,以揭示其内在的联系和规律性
主要针对如年龄这个字段,值比较分散,我们可以将其划分为如 [ '20以下', '20到40', '40到60', '60到80', '80到100', '100以上' ] ,以便做进一步的分析
相关函数:
时间转换,str => datetime
时间转换函数:
时间格式化,datetime => str
时间属性抽取,指从日期格式里面,抽取出需要的部分属性
时间属性抽取语法: datetime.property
时间抽取指按一定条件,对时间格式的数据进行抽取
相关函数:
虚拟变量,也叫哑变量和离散特征编码,可用来表示分类变量、非数量因素可能产生的影响
虚拟变量的取值有两种:
离散特征的取值之间有大小的意义的处理函数: pandas.Series.map(dict) 、 series.map(dict) dict 以 series 的值为 key ,以要映射的值为 value,返回一个 Series
离散特征的取值之间没有大小的意义的处理函数: pandas.get_dummies(data, prefix=None, prefix_sep='_'. dummy_na=False, columns=None, drop_first=False)
Oracle修改表Table所属表空间及ClobBlob字段的处理
我们会发现通过exp、imp导入库的表所属表空间还是导出时的表空间,那么假如我们导入的数据库表空间和导入时的数据库表空间不一致时就会比较麻烦,这里我们主要处理,已经导入的表所属表空间不是指向我们所要的表空间时如何修改。
1、查看表当前所属表空间
SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES -- WHERE TABLE_NAME=‘test‘ --可以加上条件
比如我们看到我的库里有两个表表空间是USERS,而非我们自建的FCCMS
![image.png](https://upload-images.jianshu.io/upload_images/17282254-51b4666e5e8e4bb6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这时候我们就可以修改表空间为USERS的两个表所属的表空间
2、确认需要修改的批量组装成修改SQL语句
SELECT ‘alter table ‘||TABLE_NAME||‘ move tablespace FCCMS;‘ FROM USER_TABLES WHERE TABLESPACE_NAME = ‘USERS‘
得到如下结果
![image.png](https://upload-images.jianshu.io/upload_images/17282254-a753993ed3189b0a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
现在我们赋值查询结果,粘贴至命令框进行执行
3、执行表空间修改
![image.png](https://upload-images.jianshu.io/upload_images/17282254-d626cf913df7f94d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4、查看修改结果
![image.png](https://upload-images.jianshu.io/upload_images/17282254-eb9ac1b6b3c9bfcb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
成功!
修改表索引同上
SELECT ‘alter index ‘|| INDEX_NAME ||‘ rebuild tablespace FCCMS;‘ FROM user_indexes;
PS:这里需要注意如果表里包含的CLOB、BLOB及相关LOB的字段,需单独做修改索引处理
1、select * from user_indexes where index_name like ‘SYS%‘;--通过这个语句查询出含有LOB字段相关的表格。
2、desc SCREENING_IWL_ENTITY;
3、ALTER TABLE 表名 MOVE LOB(‘含有LOB的字段名‘) STORE AS(TABLESPACE 索引表空间名);
select table_name from user_tab_columns where data_type in(‘CLOB‘,‘BLOB‘);
以上是关于数据分析2 - 数据导入及处理的主要内容,如果未能解决你的问题,请参考以下文章