繁体   English   中英

在 Pandas 数据框中删除不满足条件的行

[英]drop rows in pandas dataframe that are not meeting the conditions

我有一个熊猫数据框,需要清理Status列。 我的数据如下所示:

id        Status
123       100%
124       0%
125       1%
126       100%
127       0.25%

我想排除所有不是 100% 或 0% 的行。 列的类型是object

我希望我的数据如下所示:

id        Status
123       100%
124       0%
126       100%

我尝试了以下方法:

df = df.drop(df[(df.Status == '100%') & (df.Status == '0%')].index)

但这实际上根本不会改变数据集。

谢谢!

您可以有条件地选择符合条件的行并将其设置为新的数据框值

df = df.loc[(df['Status']  == '100%') | (df['Status']  == '0%')]

编辑:“|” 而不是“&”,因为两者不能同时为真,因此返回 0 结果。

首先,您说“或”,因此您需要管道运算符,而不是&符号(即使编码正确,“状态”也永远不会同时为 0% 和 100%)。 其次,您可以根据条件正确调用索引,但是您需要将索引作为索引传递给drop 这应该有效:

df.drop(index=df[(df.Status=="100%" )| (df.Status=="0%")].index)
df = pd.DataFrame([['100%'], ['0%'], ['1%'],['100%'],['0.25%']], columns=['Status'], index=[123, 124,125,126,127])
df = df[(df.Status == '100%') | (df.Status == '0%')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM