![](/img/trans.png)
[英]Pandas DataFrame: Dropping rows after meeting conditions in columns
[英]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.