python - 如果所有列都为空字符串,则从 pandas 数据框中删除行

标签 python python-3.x pandas dataframe

我有一个数据框如下

    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 会更好。仅当所有列都有 '' 空字符串

时才应将其删除

最佳答案

你可以这样做:

# 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)]

关于python - 如果所有列都为空字符串,则从 pandas 数据框中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61964116/

相关文章:

python - 删除字符串中特定索引处的 'range' 个字符

python - 如何从 C 的 PyObject 类型的函数将值从 C 返回到 python?

Python 3 numpy 在矩阵上使用整数除法,在向量上使用常规除法?

python - 过滤掉另一列字符串的某一行中包含字符串字段的行

python - 按条件重复数据框中的单元格值

python - 如何在 Atom 编辑器上使用 Pygame?

python - 阅读 Python 文档对初学者学习 Python 好吗?

python-3.x - 使用随机森林时 scikit 中的 "ValueError: max_features must be in (0, n_features] "

python - 如何从 Pandas 数据帧中获取 1's and 0' 的最大连续数量

python - 使用 xarray 添加全局属性