1.Series/dataFrame重新索引
reindex()方法是拷贝了一个值,与原来的数据不产生影响
对行进行重新索引
reindex( list(‘indexString’), fill_value=‘填充的数值’)
reindex(list(‘indexString’), method=‘ffill’) #ffill表示将前面的数据填充 bfill
s.unique()
s.value_counts()#统计数据数量
s.isin([1,2,3,5])
队列进行重新索引
reindex(columns=[列索引])
df.drop(‘A’,axis=0)#丢弃行数据.默认为行
df.sort_value(by=" ")
df.rank(method=‘first’,ascending=False)
判断索引是否重复
df.index.is_unique #判断
df.index.upique()
交换索引
df.swaplevel(‘row-1’,‘row-2’)
2.缺省值处理
问题一:grouped.size()与grouped.count()的区别
问题二:利用函数进行分组
问题三:利用函数进行聚合 grouped.agg(函数名)
xp:多个集合函数 grouped[‘data1’, ‘data2’].agg([‘mean’, ‘std’, peak])
# 给聚合后的列取名
grouped[‘data1’].agg([(‘agerage’, ‘mean’), (‘max-range’, peak)])
#给多个不同的列使用不同的聚合函数
d = {‘data1’: [‘mean’, peak, ‘max’, ‘min’],
‘data2’: ‘sum’}
grouped.agg(d)``
问题四:分组后apply()函数的使用
‘’’
#根据 column 排序,输出其最大的 n 行数据
def top(df, n=2, column=‘data1’):
return df.sort_values(by=column, ascending=False)[:n]
df.groupby(‘key1’).apply(top, n=3, column=‘data2’) #apply中的参数是传给函数的
1.使用apply()来处理分组后的缺省值
fill_meab = lamdbs g:g.fillna(g.mean())
data.groupby(group_key).apply(fill_mean)