首页 > 解决方案 > 熊猫,查找和删除行

问题描述

一直在寻找一段时间以了解如何在没有任何成功的情况下完成这项基本任务,这很奇怪。

我有一个数据集,其中一些行包含“-”,我不知道这些值位于哪些列下。

如何在整个数据集(包括所有列)中搜索“-”并删除包含该值的行?

谢谢你!

标签: pythonpandas

解决方案


df = pd.DataFrame([['-', 2, '-', 0],
                   [3, 4, '-', 1],
                   ['-', '-', '-', 5],
                   ['-', 3, '-', 4]],
                  columns=list('ABCD'))

然后 df 看起来像

df = 
    A   B   C   D
0   -   2   -   0
1   3   4   -   1
2   -   -   -   5
3   -   3   -   4

您可以将所有 '-' 替换为具有df.replace()功能的 nan 值。你可以help(df.replace)做 了解更多

df = df.replace('-', np.nan)
df=
A   B   C   D
0   NaN 2.0 NaN 0
1   3.0 4.0 NaN 1
2   NaN NaN NaN 5
3   NaN 3.0 NaN 4

要删除带有这些“-”的列,您可以使用df.dropna(how='all')


推荐阅读