Pandas, не получается выполнить проверку по двум столбцам

введите сюда описание изображенияПытаюсь проверить данные по двум столбцам, допустим Time = 0 и Type = 0 одновременно, но получаю NaN.

Td = hor_df.loc[(hor_df['Time'] == '0') & (hor_df['Type'] == '0')]
Td.mean(numeric_only=True)

https://mega.nz/file/3JZA1apY#IGi1mjNNPfHFxPxfevt_HdEAyr8bn3SlHuYkQGfGfcY


Ответы (1 шт):

Автор решения: passant

Как легко всех запутать, оказывается. Читаю ваш файл, причем - наипростейшим способом, что называется "по умолчанию" .

import pandas as pd
hor_df=pd.read_csv('horm_sort.csv')

Смотрю, а что-же за датафрейм такой я от вас получил:

hor_df.info()

и с большим удивлением обнаруживаю:

 0   Subjects      156 non-null    object 
 1   Time          156 non-null    int64  
 2   Type          156 non-null    int64  
 3   Testosterone  156 non-null    object 
 4   Cortisol      156 non-null    object 

Теперь с еще большим удивлением смотрю в ваш код:

Td = hor_df.loc[(hor_df['Time'] == '0') & (hor_df['Type'] == '0')]

и возникает вопрос - а как так, данные, и стоблец Time и столбец Type имеют тип int64, а вы почему-то с ними пытаетесь работать как со строками. Непорядок! Исправляю - и все у меня работает. Что оно там считает - не знаю, но 39 каких-то строк в датафрейме Td формируется.

Что и как исправить - оставляю на самостоятельную работу.

→ Ссылка