当前位置:  开发笔记 > 编程语言 > 正文

检查列的每一行是否在范围内

如何解决《检查列的每一行是否在范围内》经验,为你挑选了1个好方法。

我正在构建一些数据的单元测试,并且在编写pythonic数据检查时遇到了麻烦.

我有一只熊猫DataFrame:

d = {'one' : pd.Series([.14, .52, 1.], index=['a', 'b', 'c']),
     'two' : pd.Series([.57, .25, .33, .98], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(d)

现在,我想验证这些列的数据是否在[0,1]范围内.我想要一个功能:

check_data(df, column) 

True如果数据确实落在范围内,False如果没有,则返回.所以在我的示例数据中,check_data(df, 'one')返回False,check_data(df, 'two')返回True.

我的脑袋正试图逐行接受(感谢我多年的Excel VBA),但我知道这是错的.谁有更好的方法?



1> Alex Riley..:

您可以使用betweenall检查单个列:

>>> df['one'].between(0, 1).all()
False
>>> df['two'].between(0, 1).all()
True

between默认情况下包括端点; 改变这一组inclusive=False.

如果您愿意,您还可以立即检查DataFrame的每一列:

>>> ((0 <= df) & (df <= 1)).all()
one    False
two     True
dtype: bool

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有