Условно, если операторная функция лучший метод? - PullRequest
0 голосов
/ 02 января 2019

Я думаю о том, какой будет лучший метод в этом сценарии. Я пытаюсь посмотреть на 4 столбца, которые все являются временными метками.

Col_A        Col_B        Col_A1       Col_B1
Timestamp    Timestamp    Timestamp    Timestamp

Я ищу наилучший способ создания оператора if внутри функции, которая ищет более раннее время между Col_A и Col_B, а затем, в зависимости от того, что col раньше, я хочу найти более раннее значение в пределах Col_A1 и Col_B1.

например, если отметка времени в Col_A раньше, чем отметка времени в Col_B Я хочу увидеть, если отметка времени для Col_A1 раньше, чем Col_B1, тогда я хочу новый столбец с надписью 1.

В основном я пытаюсь увидеть, является ли более ранняя временная метка в первых двух столбцах, соответствующая временной метке в последних двух столбцах, более ранняя или поздняя.

что-то вроде того, если A B_1, то 2. Так что, независимо от того, какая более ранняя временная метка находится в первых двух столбцах - я хочу посмотреть, была ли эта временная метка col раньше во вторых двух столбцах.

1 Ответ

0 голосов
/ 02 января 2019

Я полагаю, что вам нужно numpy.select с условиями сцепления с & для побитового и:

m1 = df['Col_A'] < df['Col_B']
m2 = df['Col_A1'] < df['Col_B1']
m3 = df['Col_A1'] > df['Col_B1']

df['new'] = np.select([m1 & m2, m1 & m3], [1,2], default=0)

Если не совпадают даты:

m1 = df['Col_A'] < df['Col_B']
m2 = df['Col_A1'] < df['Col_B1']

#~m2 is like df['Col_A1'] >= df['Col_B1']
df['new'] = np.select([m1 & m2, m1 & ~m2], [1,2], default=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...