python进行数据预处理-pandas
安装pandas,命令行输入 pip install pandas
导出pandas以及它主要的两个数据结构Series和DataFrame
import pandas as pd
from pandas import Series,DataFram
从csv或txt文件中读取数据到DataFrame
import csv data=pd.read_csv('filename.csv',encoding='gb18030',newline='')默认分隔符为逗号 data=pd.read_table('filename.txt',seq=',')#加载带分隔符的数据使用seq='分隔符' read_fwf #读取定宽列格式数据,没有分隔符 read_clipboard #读取剪切板中的数据,可以看做read_table的剪切板。在将网页转换为表格时有用
选择:数据访问(标签、特定值、布尔索引等)
>>> data key1 key2 c1 9 8 c2 3 4 >>> data['key1'] c1 9 c2 3 >>> data.ix['c1'] key1 9 key2 8 >>> data[data['key1']>8] key1 key2 c1 9 8 >>> data[:1] key1 key2 c1 9 8 >>> data<5 key1 key2 c1 False False c2 True True >>> data<5 key1 key2 c1 False False c2 True True >>> data[data<5]=0 >>> data key1 key2 c1 9 8 c2 0 0 >>> data.ix[0] key1 9 key2 8 >>> data.ix[:'c2',:] key1 key2 c1 9 8 c2 0 0
缺失值处理:对缺失数据行进行删除或填充
#Series data.dropna() data[data.notnull()] #DataFrame data.dropna() #丢弃任何含有缺失值的行 data.dropna(how='all') #丢弃全为NA的行 data.dropna(axis=1, how='all') #丢弃列 data.fillna(0,method='ffill') #缺失值替换成0, data.fillna({1: 0.5, 3: -1},inplace=True) #对不同的列填充不同的值 fillna默认返回新对象,inplace表示就地修改
重复值处理:重复值的判断与删除
data.duplicated() #表示各行是否重复行,返回布尔值 data.drop_duplicates() #返回一个移除重复行的DataFrame data.drop_duplicates(['key1']) #根据key1列过滤重复项,默认保留第一个出现的值组合 data.drop_duplicates(['k1', 'k2'], take_last=True) #保留最后一个值组合
异常值处理:清除不必要的空格和极端、异常数据
相关操作:描述性统计、Apply、直方图等
合并:符合各种逻辑关系的合并操作
分组:数据划分、分别执行函数、数据重组
Reshaping:快速生成数据透视表