python DataFrame数据情况检查函数(列名、类型、非空行数、缺失比例、取值个数)

def summary(dat): 
    '''
    求一个df的列名、每列数据类型、每列非空行数、每列缺失比例、每列取值个数
    用于了解原始数据情况
    *依赖于
    singe_df()
    from pandas import concat
    '''
    dat_head = singe_df(dat.columns,'colname')
    dat_type = singe_df(dat.dtypes,'type') #如果一列中含有多个类型,则该列的类型会是object,同样字符串类型的列也会被当成object类型.
    dat_nrow = singe_df(len(dat)-dat.isnull().sum(axis = 0),'nrow')
    dat_lost = singe_df(dat.isnull().sum(axis = 0)/dat.shape[0],'lost_pct')
    dat_scope = []
    for i in range(len(dat.columns)):
        # print(dat.columns[i])
        x = dat[dat.columns[i]].value_counts().size
        # print(x)
        dat_scope.append(x)
        del x
    del i
    dat_scope = singe_df(dat_scope,'scope')
    summary=concat([dat_head, dat_type, dat_nrow, dat_lost, dat_scope], axis=1)
    del dat_head, dat_type, dat_nrow, dat_lost, dat_scope
    return summary

 

posted @ 2021-07-28 09:50  Shilo  阅读(583)  评论(0编辑  收藏  举报