我想消除数据帧中具有大量列的所有行,这些行等于某个值(或在某个范围内)。例如,如果我有以下数据帧:
a b
0 1 0
1 2 1
2 3 2
3 0 3
如果要删除包含0的所有行,我可以使用:
a_df[(a_df['a'] != 0) & (a_df['b'] !=0)]
但是在处理大量的列时,这会成为一种痛苦。可以这样做:
for i in a_df.columns.values:
a_df = a_df[a_df[i] != 0]
但这似乎效率低下。有没有更好的办法?你知道吗
Tags:
正如您在问题中提到的,您可能需要删除某个值在某个范围内的行,您可以通过以下方法来执行此操作
假设范围是
0 , 10 , 20
这是EdChum方法的一个变体。您可以执行
df != 0
,然后使用all
使选择器:然后使用此选项选择:
这样做的好处是,如果您愿意,它可以保留NaNs
只需对整个df执行此操作并调用^{} :
条件
df != 0
生成布尔掩码:{}当不满足条件cd3时,它产生值:
调用
dropna
会删除任何具有NaN
值的行相关问题 更多 >
编程相关推荐