Как использовать индексное целое число в операторе IF при проверке, существует ли индексное целое число в логике вниз по течению? - PullRequest
1 голос
/ 21 ноября 2019

Извинения, если название сбивает с толку.

У меня есть фрейм данных, где я хочу проверить, существуют ли в индексе 2 целых числа. Если какое-либо из этих чисел существует, я хочу использовать только эти два значения индекса, чтобы сравнить другой столбец col1, чтобы увидеть, является ли значение этого столбца нулевым для любого из этих двух целочисленных значений.

Если столбец нулевой, вернуть целое число индекса, который будет использоваться позже.

Я застрял при написании следующей части после заявления IF.

Если какое-либо из этих предложений ИСТИНА, как я могу использовать целое число, которое в дальнейшем соответствует этим критериям для логики?

if 19 in session_final.index or 49 in session_final.index:
       **Not sure what to do to retrieve the integer that fulfilled this criteria**

Ответы [ 2 ]

2 голосов
/ 21 ноября 2019

Я предлагаю использовать:

df[df.index.isin([19, 49]) & df['col1'].notna()]

При необходимости вернуть целое число индекса:

df.index[df.index.isin([19, 49]) & df['col1'].notna()]

Образец :

df = pd.DataFrame({
         'col1':[np.nan,3,5,7,1,0],
}, index=[19,49,4,5,6,7])
print (df)
    col1
19   NaN
49   3.0
4    5.0
5    7.0
6    1.0
7    0.0

a = df.index[df.index.isin([19, 49]) & df['col1'].notna()]
print (a)
Int64Index([49], dtype='int64')
1 голос
/ 21 ноября 2019

Если я правильно понимаю ваш вопрос

df[~df[df.index.isin((19, 49))]['col1'].isnull()]

предоставит вам фрейм данных с индексом либо в (19, 49), а col1 не равен нулю.

Тогда вы можетеубедитесь, что для фрейма данных указан emtpy или нет, а затем проверьте значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...