我有一个这样的数据框:
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 |
并且需要能够快速删除任何列包含 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]
不起作用?
Thanks
Use iloc http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iloc.html对于选择的列范围,这里全部没有第一个,将所有值与DataFrame.all http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.all.html:
df = df[(df.iloc[:, 1:] != 10000).all(axis=1)]
print (df)
Plate MeanV1 MeanV2 MeanV3
0 1 3.2 4.8 6.8
2 2 2.8 4.6 6.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)