Pandas数据清洗总结

# 导入

import numpy as np

import pandas as pd

# 查看版本

pd.__version__

文本文件的读取: 对于csv或txt后缀的文本文件,用read_csv函数来实现文件的导入。重要参数的含义如下

pd.read_csv(file_path_or_buffer, #指定导入文件的具体路径

sep = ', ', # 指定元数据中各种变量之间的分割符,默认是逗号,可自行修改

header='infer' , #默认将数据集首行作为表头(列名),若原数据集无表头则设置为header=None

names=None, # 若原数据集中无变量名称 , 可通过该参数在数据读取时设定

index_col = None, # 指定将某些行作为行索引

usecols = None, # 指定需要读取的变量名

converters = None , # 通过字典格式,为数据集中的某些变量设置不同的数据

skiprows = None, # 数据读取时,指定需要跳过原数据集的起始行数

skipfooter = 0, # 读取数据时,指定需要跳过原数据集的末尾行数

nrows = None, # 指定数据读取的行数

comment = None,# 指定注释符,读取数据时遇到行首指定的注释符则跳过该行

encoding = None, # 设置编码方式,解决中午乱码问题 (通常设置为utf-8或给gbk))

数据读取进来之后形成的表格在pandas中称为DataFrame,这是一个带有索引的二维数据结构,每一行都有索引,数据读取进来的时候会生成从0开始的整数索引

pd.read_excel() 读取xls、xlsx后缀的excel电子表格数据 和read_csv一样

# 数据探索

df.head() # 查看导入数据的前五行  # df.head(10)  看前十行

df.tail(7) # 查看数据的后七行

df.shape # 查看数据的规模

df.index # 查看数据的行索引

df.columns # 查看数据列名

df.info() # 查看整体信息

df.describe() # 进行简单描述统计 

df.isnull() # 查看数据集是否有缺失值

df.isnull().sum() # 对缺失值进行统计 每一个列里面的缺失值都会出来

df.isnull().sum(axis=1) # 对每一行的缺失值统计  axis=1行  axis=0列

df.duplicated() # 查看数据集是否有重复值

# 数据选取

提取某列 df["gender"]

注意 提取出来的单列或者单行是另一种数据类型 series 也是带有名称和索引的一维数组

提取行 df[5:11] 左闭右开 5到10行

基于标签的索引 loc  l为label  没有左闭右开 直接提取5到10行

df.loc[5:10, ['name', ['age'], ['custom_amt']]]  # 提取五到十行并返回姓名年龄交易额散列

df1 = df.set_index('name')   # 将name这一列作为索引

df1.loc['姓名', :] 读取这位用户的全部信息

df.loc[df['age']<20, :] 提取出所有年龄小于20的信息

基于位置的索引 iloc

df.iloc[0:5, 0:3] # 提取前五行前三列的数据

#随机抽样

df.sample(n=None,  # 指定抽样的数量,默认为1

                frac=None, # 按比例进行抽样

                replace=False, # 是否允许抽样样本数量高于数据集的数量

                weights=None, # 样本权重

                random_state=None, # 随机数种子

                axis = None, # 对行采样还是对列采样,默认对行采样)

新增一列 df2.loc[: , "权重"]=W w是一个列表


PREVIOUS_MAX_ROW = pd.options.display.max_rows

pd.options.display.max_rows = 20  # 设置显示最大行

np.random.seed(12345)

处理缺失值  NaN: Not a Number NA:Not available

isnull() 判断是否为缺失值

data.dropna()   dropna要用一个新的变量保存 原变量是不会变的

data.fillna(0)  填充缺失值

df.fillna({1:0.5, 2:0}) 第一列填充0.5 第二列填充0

删除重复值

data.duplicated() 判断之前是否出现过

data.drop_duplicates() 删除重复值

data.drop_duplicate(['列名'], keep='last') 删除某一列重复值 保留最后一个

                

你可能感兴趣的:(NLP学习笔记,机器学习,自然语言处理,nlp,人工智能,深度学习)