python - 比较训练集和有效集之间的 pd.Series 范围
问题描述
假设我有一个训练集和有效集如下:
>>> train
A B
0 1 300
1 5 600
2 2 450
>>> valid
A B
0 1500 300
1 4 600
2 2 450
对于火车集中的每一列,我想知道 的范围valid[col]
是否在 的范围内train[col]
,这意味着if max(valid[col])<=max(train[col]) and min(valid[col])>=min(train[col])
。在这个例子中:
>>> func(train,valid)
A B
0 False True
除了构建一个for
循环来每次检查训练集中的每一列之外,还有没有更好的方法来构建这个函数?
解决方案
尝试这个:
In [59]: %paste
def f(col):
return (train[col].max() >= valid[col].max()) & (train[col].min() <= valid[col].min())
## -- End pasted text --
In [60]: train.apply(lambda c: f(c.name))
Out[60]:
A False
B True
dtype: bool
作为DF:
In [63]: train.apply(lambda c: f(c.name)).to_frame(0).T
Out[63]:
A B
0 False True
推荐阅读
- html - 当浏览器宽度调整大小时,如何防止浮动 div 在其他浮动 div 下方移动?
- sql - ms 访问查询(ms 访问冻结)
- cmake - CMake - 如何在子目录中的这些命令之后从顶层调用安装命令?
- mysql - 在 MySQL SERVER 8.0 中,PASSWORD 功能不起作用
- swift - 将二进制 C 结构从 File 加载到 Swift 结构中
- java - Java URLEncoder 保留原始消息的大小写,但使 UTF-8 代码小写
- python-3.x - 如何有选择地从python字典中获取值
- javascript - 如何在提交时获取表单数据?
- shell - Homestead 将参数传递给 after.sh 以进行 xdebug 自动配置
- sql-server - 将数据类型 nvarchar 转换为数值时出错。在过程中调用函数时