gpt4 book ai didi

python - 如何根据条件表达式从 pandas DataFrame 中删除行

转载 作者:IT老高 更新时间:2023-10-28 12:12:40 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,我想从中删除特定列中字符串长度大于 2 的行。

我希望能够做到这一点(根据 this answer):

df[(len(df['column name']) < 2)]

但我只是得到错误:

KeyError: u'no item named False'

我做错了什么?

(注意:我知道我可以使用 df.dropna() 来删除包含任何 NaN 的行,但我没有看到如何删除行基于条件表达式。)

最佳答案

直接回答这个问题的原标题“如何根据条件表达式从 Pandas 数据帧中删除行”(我理解这不一定是 OP 的问题,但可以帮助其他用户遇到这个问题)一种方法来做到这一点是使用drop方法:

df = df.drop(some labels)
df = df.drop(df[<some boolean condition>].index)

示例

删除列'score' < 50的所有行:

df = df.drop(df[df.score < 50].index)

就地版本(如评论中指出的那样)

df.drop(df[df.score < 50].index, inplace=True)

多个条件

(见 Boolean Indexing)

The operators are: | for or, & for and, and ~ for not. These must begrouped by using parentheses.

删除列'score' < 50 和> 20 的所有行

df = df.drop(df[(df.score < 50) & (df.score > 20)].index)

关于python - 如何根据条件表达式从 pandas DataFrame 中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13851535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com