数据分析之pandas常见的数据处理(四)

常见聚合方法 方法 说明
count   计数  
describe   给出各列的常用统计量  
min,max   最大最小值  
argmin,argmax   最大最小值的索引位置(整数)  
idxmin,idxmax   最大最小值的索引值  
quantile   计算样本分位数  
sum,mean   对列求和,均值  
mediam   中位数  
mad   根据平均值计算平均绝对离差  
var,std   方差,标准差  
skew   偏度(三阶矩)  
Kurt   峰度(四阶矩)  
cumsum   累积和  
Cummins,cummax   累计组大致和累计最小值  
cumprod   累计积  
diff   一阶差分  
pct_change   计算百分数变化  
1 清洗无效数据 df[df.isnull()] #判断是够是Nan,None返回的是个true或false的Series对象 df[df.notnull()] #dropna(): 过滤丢失数据 #df3.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) df.dropna() #将所有含有nan项的row删除 df.dropna(axis=1,thresh=3) #将在列的方向上三个为NaN的项删除 df.dropna(how='ALL') #将全部项都是nan的row删除 df.dropna()与data[data.notnull()] #效果一致 #fillna(): 填充丢失数据 #前置填充 axis = 0 行 #后置填充 axis = 1 列 df3.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None) df.fillna({1:0, 2:0.5}) #对第一列nan值赋0,第二列赋值0.5 df.fillna(method='ffill') #在列方向上以前一个值作为值赋给NaN 2 drop函数使用 drop函数的使用:删除行、删除列 print frame.drop(['a']) print frame.drop(['Ohio'], axis = 1)

drop函数默认删除行,列需要加axis = 1

drop函数的使用:inplace参数

采用drop方法,有下面三种等价的表达式:

1. DF= DF.drop('column_name', axis=1); 2. DF.drop('column_name',axis=1, inplace=True) 3. DF.drop([DF.columns[[0,1, 3]]], axis=1, inplace=True)

注意:凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;

而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)。

drop函数的使用:数据类型转换 df['Name'] = df['Name'].astype(np.datetime64)

DataFrame.astype() 方法可对整个DataFrame或某一列进行数据格式转换,支持Python和NumPy的数据类型。

3 pandas数据处理方法 (1) 删除重复数据

df.duplicated() 返回boolean列表,重复为True

df.drop_duplicates() 删除重复元素即值为True的列行

参数列表

subset : column label or sequence of labels, optional
用来指定特定的列,默认所有列

keep : {‘first’, ‘last’, False}, default ‘first’
删除重复项并保留第一次出现的项

inplace : boolean, default False
是直接在原来数据上修改还是保留一个副本

# 判断是否重复 data.duplicated()` #移除重复数据 data.drop_duplicated() #对指定列判断是否存在重复值,然后删除重复数据 data.drop_duplicated(['key1']) df = DataFrame({'color':['white','white','red','red','white'], 'value':[2,1,3,3,2]}) display(df,df.duplicated(),df.drop_duplicates()) #输出: color value 0 white 2 1 white 1 2 red 3 3 red 3 4 white 2 0 False 1 False 2 False 3 True 4 True dtype: bool color value 0 white 2 1 white 1 2 red 3 (2) 映射

1 replace() 替换元素 replace({索引键值对})

df = DataFrame({'item':['ball','mug','pen'], 'color':['white','rosso','verde'], 'price':[5.56,4.20,1.30]}) newcolors = {'rosso':'red','verde':'green'} display(df,df.replace(newcolors)) #输出: color item price 0 white ball 5.56 1 rosso mug 4.20 2 verde pen 1.30 color item price 0 white ball 5.56 1 red mug 4.20 2 green pen 1.30 2.replace还经常用来替换NaN元素 df2 = DataFrame({'math':[100,139,np.nan],'English':[146,None,119]},index = ['张三','李四','Tom']) newvalues = {np.nan:100} display(df2,df2.replace(newvalues)) #输出: English math 张三 146.0 100.0 李四 NaN 139.0 Tom 119.0 NaN English math 张三 146.0 100.0 李四 100.0 139.0 Tom 119.0 100.0

2 map()函数:新建一列

map(函数,可迭代对象) map(函数/{索引键值对})

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspdyg.html