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 шт):
Как легко всех запутать, оказывается. Читаю ваш файл, причем - наипростейшим способом, что называется "по умолчанию" .
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 формируется.
Что и как исправить - оставляю на самостоятельную работу.