数据探索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
    • 图像数据(向量相似度)
  • 分桶离散

 

4 、标签状况

  • 标签数据类型
  • 标签分布(标签是否均衡)
posted @ 2021-01-08 10:34  啊呀啊呀静  阅读(137)  评论(0)    收藏  举报