摘要:日常工作和学习中通常需要将手中的csv数据进行读取、清洗、预处理然后导出。Pandas作为强大的结构化数据分析工具集,它的使用基础是Numpy,用于数据挖掘和数据分析,同时也提供数据清洗功能。本文视角从excel数据处理进行类比讲述。
1.数据读取
基础设置:
#coding=utf-8
import pandas as pd
import numpy as np
#用于使输出的dataframe数据全部展示,默认展示长度会较短
pd.set_option('display.max_columns',1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth',1000)
# 警告过滤器进行控制是否发出警告消息:忽略匹配的警告
import warnings
warnings.filterwarnings('ignore')
文件读取:excel,csv数据一般保存为utf-8格式
df = pd.read_csv(r'prepic.csv',usecols=[0,1,2],names=['人群', '标签', '频次'],header=0)
df.head(n=5)#此方法用于返回数据帧或序列的前n行(默认值为5),用于测试。
.read_csv中参数分别表示:
- header=none是指表格第一行不是标题行
- header=0(将首行设为列名),sep / delimiter 列分隔符
- names=[],自定义列名,否则默认0,1,2,…
- skiprows= 10 , nrows = 10 # 忽略前n行,往下读m行
- index_col = None /False /0,重新生成一列成为index值,index_col=[0]表示第一列为行索引,index_col=[“name”]用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数宇组成的列表(层次化索引)
- error_bad_lines = False # 当某行数据有问题时,不报错,直接跳过,处理脏数据时使用
- na_values = ‘NULL’ # 将NULL识别为空值
2.数据预处理
drop_duplicates 去重
data.drop_duplicates(inplace=True) #去除完全重复的行数据
data.drop_duplicates(subset['A','B'],keep='first',inplace=True)
#去除某几列重复的行数据,
#first: 保留第一次出现的重复行,删除后面的重复行。
#last: 删除重复项,除了最后一次出现。
#False: 删除所有重复项。
#inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。
缺失值处理dropna :
data.dropna(how = 'all') # 只丢弃全为缺失值的那些行
data.dropna(axis = 1) # 丢弃有缺失值的列会删掉一个特征
data.dropna(axis=1,how="all&