python - Pandas:从带有字符串标题的列中删除某些值

标签 python string pandas dataframe

假设我有以下数据框 df :

        First C        Second C       Third C
0       0.104000       0.864000       -999
1       0.060337       0.812470       -999
2       0.065797       0.819570       0.802607
3       0.064715       0.817212       0.801755

我想删除前两行,因为列 Third C显示两个奇怪的值。

df = df.drop(df[df.('Third C') == -999].index)

这会抛出:

       df = df.drop(df[df.('Third C') == -999].index)
                          ^
SyntaxError: invalid syntax

如果我使用 df.['Third C'] 也会发生同样的事情带方括号。如何执行此操作而不必重命名我的列?

最佳答案

仅使用[]并删除.:

df = df.drop(df[df['Third C'] == -999].index)

但最好使用boolean indexing :

df = df[df['Third C'] != -999]

时间:

drop 解决方案速度较慢,因为它使用 bool 索引drop:

In [204]: %timeit (df.drop(df[df['Third C'] == -999].index))
1000 loops, best of 3: 691 µs per loop

In [205]: %timeit (df[df['Third C'] != -999])
1000 loops, best of 3: 359 µs per loop

关于python - Pandas:从带有字符串标题的列中删除某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40867977/

相关文章:

python - Scrapy不生成outputcsv文件

python - 是什么意思?它有意义吗?

string - 将 int 转换为字符串向量

java - 在Java中使用正则表达式实现简单的字符串匹配

python - discord.py "wait_for"命令中的 react

Python 3 : Why does splitlines() on a str results in TypeError?(但并非总是如此)

python - 如何返回字符串中以某个字符开头的单词? (Python)

Python Pandas Dataframe 追加行

python - Pandas的squeeze()函数中可能出现错误

Python Pandas : Eliminate a row from a dataframe if a value in a any preceding row in a groupby meets a certain criteria