Автор |
Сообщение |
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Если я не ошибаюсь, то видел на форуме функцию VALUEWHEN написанную циклично. Хочу заглянуть внутрь этой функции, если есть у кого то возможность продублировать, выложите пожалуйста. |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
MrDzenLi писал(а): |
Если я не ошибаюсь, то видел на форуме функцию VALUEWHEN написанную циклично. Хочу заглянуть внутрь этой функции, если есть у кого то возможность продублировать, выложите пожалуйста. |
Код: |
result = valuewhen(condition, array) |
который возвращает значение массива , когда условие было True в самом последнем случае:
Код: |
import pandas as pd
pd1 = pd.Series([0,0,1,1,0,0,1,0,1,0,0,0,1])
pd2 = pd.Series([1,2,3,4,5,6,7,8,9,10,11,12,13])
def valuewhen(a1, a2):
res = pd.Series(index=a1.index)
res.loc[a1 == 1] = a2
res = res.ffill().fillna(0)
return res
result = valuewhen(pd1, pd2) |
Пример:
Код: |
result = valuewhen(array1, array2)
array1 array2 result
0 1 0
0 2 0
1 3 3
1 4 4
0 5 4
0 6 4
1 7 7
0 8 7
1 9 9
0 10 9
0 11 9
0 12 9
1 13 13 |
Теперь я хочу вернуть значение массива , когда условие было True в последнем случае n :
Код: |
result = ValueWhen(condition, array[, n]) #[if missing n=1] |
Пример:
Код: |
Result = ValueWhen(array1, array2, 1)
Result2 = ValueWhen(array1, array2, 2)
array1 array2 Result Result2
0 1 0 0
0 2 0 0
1 3 3 0
1 4 4 3
0 5 4 3
0 6 4 3
1 7 7 4
0 8 7 4
1 9 9 7
0 10 9 7
0 11 9 7
0 12 9 7
1 13 13 9 |
|
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Похож ? |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Result = ValueWhen(array1, array2, 1)
Result2 = ValueWhen(array1, array2, 2)
array1 array2 Result Result2
0 1 0 0
0 2 0 0
1 3 3 0
1 4 4 3
0 5 4 3
0 6 4 3
1 7 7 4
0 8 7 4
1 9 9 7
0 10 9 7
0 11 9 7
0 12 9 7
1 13 13 9
|
Вроде правильно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
000 писал(а): |
Код: |
Result = ValueWhen(array1, array2, 1)
Result2 = ValueWhen(array1, array2, 2)
array1 array2 Result Result2
0 1 0 0
0 2 0 0
1 3 3 0
1 4 4 3
0 5 4 3
0 6 4 3
1 7 7 4
0 8 7 4
1 9 9 7
0 10 9 7
0 11 9 7
0 12 9 7
1 13 13 9
|
Вроде правильно. |
Да, Спасибо. Я разобрал этот вопрос, в Квике тоже есть такая функция, называется GetValue |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|