我需要删除所有行,其中第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是那些要检查NaNs的列.正如@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 次 |
| 最近记录: |