如何排序以了解熊猫的完整率等级

时间:2018-08-06 06:14:57

标签: python pandas dataframe

这是我的数据集

id   feature_1    feature_2   feature_3    feature_4   feature_5
1           10           15          10           15          20
2           10          NaN          10          NaN          20 
3           10          NaN          10          NaN          20 
4           10           46         NaN           23          20 
5           10          NaN          10          NaN          20 

这就是我所需要的,我想根据数据集的完整性级别(数据百分比越高,则nan越多,完整性级别越高)对数据进行排序,str将会递增,因此使我更容易估​​算缺失值

id   feature_1    feature_2   feature_3    feature_4   feature_5
2           10          NaN          10          NaN          20 
3           10          NaN          10          NaN          20 
5           10          NaN          10          NaN          20
4           10           46         NaN           23          20 
1           10           15          10           15          20

最好的问候,

2 个答案:

答案 0 :(得分:1)

尝试一下:

import pandas as pd
import numpy as np

d = ({
    'A' : ['X',np.NaN,np.NaN,'X','Y',np.NaN,'X','X',np.NaN,'X','X'],           
    'B' : ['Y',np.NaN,'X','Val','X','X',np.NaN,'X','X','X','X'],
    'C' : ['Y','X','X',np.NaN,'X','X','Val','X','X',np.NaN,np.NaN],
    })

df = pd.DataFrame(data=d)

df.T.isnull().sum()
Out[72]:
0     0
1     2
2     1
3     1
4     0
5     1
6     1
7     0
8     1
9     1
10    1
dtype: int64

df['is_null'] = df.T.isnull().sum()

df.sort_values('is_null', ascending=False)
Out[77]:
A   B   C   is_null
1   NaN NaN X   2
2   NaN X   X   1
3   X   Val NaN 1
5   NaN X   X   1
6   X   NaN Val 1
8   NaN X   X   1
9   X   X   NaN 1
10  X   X   NaN 1
0   X   Y   Y   0
4   Y   X   X   0
7   X   X   X   0

答案 1 :(得分:1)

如果要按maximalNaN个数按列排序:

c = df.isnull().sum().idxmax()
print (c)
feature_2

df = df.sort_values(c, na_position='first', ascending=False)
print (df)
   id  feature_1  feature_2  feature_3  feature_4  feature_5
1   2         10        NaN       10.0        NaN         20
2   3         10        NaN       10.0        NaN         20
4   5         10        NaN       10.0        NaN         20
3   4         10       46.0        NaN       23.0         20
0   1         10       15.0       10.0       15.0         20