我需要删除所有行,其中第3列以后的元素都是NaN
df = DataFrame(np.random.randn(6, 5), index=['a', 'c', 'e', 'f', 'g','h'], columns=['one', 'two', 'three', 'four', 'five'])
df2 = df.reindex(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
df2.ix[1][0] = 111
df2.ix[1][1] = 222
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我的最终数据框不会有行'b'和'c'.
df.dropna()
在这种情况下如何使用?
And*_*den 72
你可以调用dropna
带参数的subset
和how
:
df2.dropna(subset=['three', 'four', 'five'], how='all')
Run Code Online (Sandbox Code Playgroud)
顾名思义:
how='all'
要求删除subset
行中的每列(of )NaN
,而不是默认值'any'
.subset
是那些要检查NaN
s的列.正如@PaulH指出的那样,我们可以概括地删除最后一k
列:
subset=df2.columns[k:]
Run Code Online (Sandbox Code Playgroud)
实际上,如果需要,我们甚至可以做更复杂的事情:
subset=filter(lambda x: len(x) > 3, df2.columns)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
50194 次 |
最近记录: |