根据ANY列值从Dataframe中删除行

我有一个数据框:


    Plate | MeanV1 | MeanV2 | MeanV3 ...etc

-----------------------------------------------

0   1     |   3.2  |   4.8  |  6.8  |

1   1     |   3.1  |  10000 | 10000 |  

2   2     |   2.8  |   4.6  |  6.1  |

3   2     |   2.9  |   5.1  | 10000 |

4   3     |  10000 |   5.0  |  7.2  |

并且需要能够快速删除ANY列包含10000的所有行。


我有一个较早的df,它仅10000在单列中包含错误代码(),并且可以使用:


df[df['MeanV1'] < 1000]

但是我设法在多列上执行此操作的唯一方法是:


df[df['MeanV1'] < 1000]

df[df['MeanV2'] < 1000]

df[df['MeanV3'] < 1000]

等。请记住,在实际数据集中有3000多个列。


有人可以帮助我了解原因:


headers = list(df)


for prop in headers:

    df = df[df[prop] < 1000]

不起作用?


MMTTMM
浏览 143回答 1
1回答

尚方宝剑之说

使用iloc了选择范围的列,这里所有的没有首先,与所有的值进行比较DataFrame.all:df =&nbsp; df[(df.iloc[:, 1:] != 10000).all(axis=1)]print (df)&nbsp; &nbsp;Plate&nbsp; MeanV1&nbsp; MeanV2&nbsp; MeanV30&nbsp; &nbsp; &nbsp; 1&nbsp; &nbsp; &nbsp;3.2&nbsp; &nbsp; &nbsp;4.8&nbsp; &nbsp; &nbsp;6.82&nbsp; &nbsp; &nbsp; 2&nbsp; &nbsp; &nbsp;2.8&nbsp; &nbsp; &nbsp;4.6&nbsp; &nbsp; &nbsp;6.1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python