Сравните диапазон pd.Series между набором поезда и действительным набором - PullRequest
0 голосов
/ 20 мая 2018

Предположим, я получил набор поездов и действительный набор, как показано ниже:

>>> 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 для проверки каждого столбца в наборе поездов каждый раз, есть ли лучший способ построить эту функцию?

1 Ответ

0 голосов
/ 20 мая 2018

Попробуйте:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...