【发布时间】:2017-02-21 02:01:54
【问题描述】:
我有一个这样的数据框
>>df1 = pd.DataFrame({'A': ['1', '2', '3', '4','5'],
'B': ['1', '1', '1', '1','1'],
'C': ['c', 'A1', None, 'c3',None],
'D': ['d0', 'B1', 'B2', None,'B4'],
'E': ['A', None, 'S', None,'S'],
'F': ['3', '4', '5', '6','7'],
'G': ['2', '2', None, '2','2']})
>>df1
A B C D E F G
0 1 1 c d0 A 3 2
1 2 1 A1 B1 None 4 2
2 3 1 None B2 S 5 None
3 4 1 c3 None None 6 2
4 5 1 None B4 S 7 2
然后我删除包含 nan valuesdf2 = df1.dropna()的行
A B C D E F G
1 2 1 A1 B1 None 4 2
2 3 1 None B2 S 5 None
3 4 1 c3 None None 6 2
4 5 1 None B4 S 7 2
这是一个丢弃的数据框,因为这些行包含 nan 值。 但是,我想知道他们为什么被丢弃?哪一列是“第一个 nan 值列”使该行被删除?我需要一个放弃的举报理由。
输出应该是
['E','C','D','C']
我知道我可以在每一列都做dropna 然后将其记录为原因
但它确实效率不高。
有没有更有效的方法来解决这个问题? 谢谢
【问题讨论】:
-
有什么理由用
None代替NaN?您的问题的答案可能取决于... -
好吧...只是举例。我不知道他们是不同的。不管怎样,np.nan 没问题。