EDA 数据探索分析简要方法记录 数据处理

EDA 数据探索分析简要方法记录 数据处理

版本:21.8.30

下载地址: 小程序数据库内搜索 EDA方法记录

在这里插入图片描述

已将本文档整理成PDF文档分享(无水印,可编辑)
后续文档仍将继续更新

一、数据探索

数据探索的目的:及早发现数据的一些简单规律或特征

数据清洗的目的:留下可靠数据,避免脏数据的干扰。

两者没有严格的先后顺序,经常在一个阶段进行。

分为:

(1)数据质量分析(跟数据清洗密切联系):缺失值分析、异常值分析、一致性分析、重复数据或含有特殊符号的数据分析

(2)数据特征分析(分布、对比、周期性、相关性、常见统计量等):

遍历文件夹,读取指定文件夹下文件的名称

os.listdir()方法:用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。

1. 数据读取

1.1 CSV格式数据
1.1.1 读取

使用read_csv

pandas.read_csv可以读取csv(逗号分隔)文件、文本类型的文件text、log类型到DataFrame(可以理解为pandas中的一类数据格式)

# 示例
import pandas as pd
df = pd,read_csv('name.csv')

函数方法:

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

参数解释

filepath_or_buffer :可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中本地文件读取。 
sep:如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’。
delim_whitespace : 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为True那么delimiter 参数失效。
header :指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0【第一行数据】,否则设置为None。如果明确设定 header = 0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉。注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
names :用于结果的列名列表,如果数据文件中没有列标题行,就需要执行 header=None。names属性在header之前运行默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
index_col :用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
usecols:返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
prefix:在没有列标题时,也就是header设定为None,给列添加前缀。例如:添加prefix= ‘X’ 使得列名称成为 X0, X1, …
dtype: 每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}
skipinitialspace:忽略分隔符后的空白(默认为False,即不忽略).
skiprows :需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
nrows :需要读取的行数(从文件头开始算起)。
na_values :一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认为‘1.#IND’, ‘1.#QNAN’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, ‘nan’`.
keep_default_na:如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加
na_filter:是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定na_filter=False可以提升读取速度。
skip_blank_lines :如果为True,则跳过空行;否则记为NaN。

常用参数解释:

  • **head 、names:**表示第一行的数据不取为列名,自己另外取名为names=[‘a’,‘b’,‘c’]。如果不加header=None则表示第一行作为列名。
  • **encoding :**遇到 ‘utf-8’ codec can’t decode byte 0xba in position 0: invalid start byte 但是又必须要中文解码,解决办法是设置read_csv中encoding = ‘GB2312’
  • chunksize:通过指定一个chunksize分块大小来读取文件,返回的是一个可迭代的对象TextFileReader。
  • **iterator :**指定iterator=True 也可以返回一个可迭代对象TextFileReader
1.1.2 保存
  • 全部写入

    import pandas as pd
    data = pd.DataFrame(要写入的数据源)
    data.to_csv('文件名.csv',index = false,encoding = 'utf-8,mode='a'')  #index= False的意思是不把index保存进文件中,mode='a'是表示以追加的方式加入文件中
    )
    
  • 添加,按行写入文件中

    f=open(path,'a+',newline='')#newline设定可以让写出的csv中不包含空行
    writer=csv.writer(f)
    for row in range(b.shape[0]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值