首页 > 解决方案 > 如果所有列都有空字符串,则从熊猫数据框中删除行

问题描述

我有一个数据框如下

    Name Age
0    Tom  20
1   nick  21
2           
3  krish  19
4   jack  18
5           
6   jill  26
7   nick

所需的输出是

    Name Age
0    Tom  20
1   nick  21
3  krish  19
4   jack  18
6   jill  26
7   nick

不应更改索引,如果可能的话,如果我不必将空字符串转换为 NaN 会很好。''仅当所有列都有空字符串时才应将其删除

标签: pythonpython-3.xpandasdataframe

解决方案


你可以做:

# df.eq('') compare every cell of `df` to `''`
# .all(1) or .all(axis=1) checks if all cells on rows are True
# ~ is negate operator.
mask = ~df.eq('').all(1)

# equivalently, `ne` for `not equal`, 
# mask = df.ne('').any(axis=1)

# mask is a boolean series of same length with `df`
# this is called boolean indexing, similar to numpy's
# which chooses only rows corresponding to `True`
df = df[mask]

或者在一行中:

df = df[~df.eq('').all(1)]

推荐阅读