常见聚合方法
方法
说明
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
是直接在原来数据上修改还是保留一个副本
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.02 map()函数:新建一列
map(函数,可迭代对象) map(函数/{索引键值对})