我想过滤数据帧中包含小于 10 的值的行。
import numpy as np
import pandas as pd
from pprint import pprint
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))
df = df[df <10]
gives,
A B C D
0 5.0 NaN NaN NaN
1 NaN NaN NaN NaN
2 0.0 NaN 6.0 NaN
3 NaN NaN NaN NaN
4 NaN NaN NaN NaN
5 6.0 NaN NaN NaN
6 NaN NaN NaN NaN
7 NaN NaN NaN 7.0
8 NaN NaN NaN NaN
9 NaN NaN NaN NaN
预期的:
0 5 57 87 95
2 0 80 6 82
5 6 33 74 75
7 71 44 60 7
关于如何获得预期结果有什么建议吗?
Use:
np.random.seed(21)
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))
如果想按条件的任何值进行过滤,则需要添加DataFrame.any http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.any.html用于测试至少一个True
布尔值的DataFrame
:
df1 = df[(df < 10).any(axis=1)]
print (df1)
A B C D
0 73 79 56 4
5 5 18 70 50
7 5 80 35 91
9 6 84 90 28
print (df < 10)
A B C D
0 False False False True
1 False False False False
2 False False False False
3 False False False False
4 False False False False
5 True False False False
6 False False False False
7 True False False False
8 False False False False
9 True False False False
print ((df < 10).any(axis=1))
0 True
1 False
2 False
3 False
4 False
5 True
6 False
7 True
8 False
9 True
dtype: bool
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)