数据探索EDA
1、list\ndarray\dataframe的相互转换
list转ndarray:
import numpy as np li = [1, 3, 5, 6] linp = np.array(li) print(li, linp)
ndarray转dataframe:
import numpy as np import pandas as pd aa = np.arange(8).reshape(4, 2) print(aa) columns_new = ['col1', 'col2'] df = pd.DataFrame(aa, columns=columns_new) print(df)
2、查看数据类型
(1)如果使用pandas:
# 数据有多少行多少列 df.shape # 每一列数据大概是什么内容 df.columns # 每一列数据的数据类型是什么 df.info()
根据数值类型还是文本类型确定建模方法
(2)如果不使用pandas:
# 给每个列名称一个ID def _build_id_dict(header): return dict(zip(header, range(len(header))) datas = [] # 读取数据 with open('train.csv', "r", encoding = "utf-8") as f: header = f.readline().strip().split(",") headerid = _build_id_dict(header) # 有多少列,每一列的内容是什么 print(headerid) # 一共有多少行 i = 0 for line in f.readlines(): sline = line.strip().split(",") datas.append(sline) i += 1 print(i) f.close()
(3)直接读取压缩包里面的数据:
import gzip # 查看前两行的数据内容 with gzip.open('train.gz', 'rt') as f: for i in range(2): print(f.readline().strip().split(",")[2:]) train_file = gzip.open('train.gz', 'rt')
3、异常点、量纲、归一化排查
df.describe
- 异常点:超过异常区域的重新赋值
- 量纲是否需要统一:Minmaxscaler
- 是否需要归一化
- Normalizer
- 图像数据(向量相似度)
- Normalizer
- 分桶离散
4 、标签状况
- 标签数据类型
- 标签分布(标签是否均衡)
浙公网安备 33010602011771号