如何通过每行的非NAN值计数来提取此数据框中的所有非NAN值

时间:2019-05-31 13:11:26

标签: python pandas dataframe

我想提取数据帧每一行中的非Nan值。
我得到一个行数大于3000的数据框,如下所示:

# this is just an example, not whole data
  l1     l2     l3
0 2      nan    nan
1 1      nan    nan
2 3      4      nan
3 1      2      4
4 3      2      nan
5 4      1      2
6 5      nan    nan

我想通过每一行的非NAN值计数来提取此数据框中的所有非NAN值,如下所示

one_non_nan_value_counts
    l1
0   2
1   1
2   5

two_non_nan_value_counts
    l1    l2    
0   3     4
1   3     2

three_non_nan_value_counts
    l1    l2    l3
0   1     2     4
1   4     1     2

能帮我吗?
预先感谢。

1 个答案:

答案 0 :(得分:2)

IIUC:

for x,y in df.groupby(df.isna().sum(axis=1)):
    print('nan', x)
    print(y.dropna(axis=1))

输出:

nan 0
   l1   l2   l3
3   1  2.0  4.0
5   4  1.0  2.0
nan 1
   l1   l2
2   3  4.0
4   3  2.0
nan 2
   l1
0   2
1   1
6   5