Как проверить наивысший балл среди определенных столбцов и вычислить среднее значение в пандах? - PullRequest
0 голосов
/ 06 февраля 2019

Помощь с домашним заданием: «Давайте определим« опыт в науке о данных »данного человека как самый высокий балл человека по регрессии, классификации и кластеризации. Вычислите средний опыт по науке данных среди всех студентов MSIS».

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

Я очень ценю вашу помощь заранее!

Изображение набора образцов данных: 1 : https://i.stack.imgur.com/9OSjz.png

Provided Code: 
import pandas as pd
df = pd.read_csv("cleaned_survey.csv", index_col=0)
df.drop(['ProgSkills','Languages','Expert'],axis=1,inplace=True) 

Образцы данных:enter image description here

Что я пробовал до сих пор:

df[data_science_experience]=df[["Regression","Classification","Clustering"]].values.max()
df['z']=df[['Regression','Classification','Clustering']].apply(np.max,axis=1)
df[data_science_experience]=df[["Regression","Classification","Clustering"]].apply(np.max,axis=1)

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Во-первых, вы хотите получить только строки с MSIS в столбце Program.Это можно сделать следующим образом:

df[df['Program'] == 'MSIS']

Далее вы хотите получить только столбцы Regression, Classification и Clustering.Предыдущий запрос фильтровал только строки;мы можем добавить к этому, вот так:

df.loc[df['Program'] == 'MSIS', ['Regression', 'Classification', 'Clustering']]

Теперь, для каждой оставшейся строки мы хотим взять максимум.Это можно сделать, добавив .max(axis=1) к предыдущей строке (axis=1, потому что мы хотим максимум каждой строки, а не каждого столбца).

На этом этапе у нас должен быть DataFrame, где каждая строка представляетсамый высокий балл из трех категорий для каждого студента.Теперь все, что осталось сделать, это взять среднее, что можно сделать с помощью .mean().Полный код должен выглядеть следующим образом:

df.loc[df['Program'] == 'MSIS', ['Regression', 'Classification', 'Clustering']].max(axis=1).mean()
0 голосов
/ 06 февраля 2019

Если вы хотите получить наивысшую оценку в столбце «hw1», вы можете получить его с помощью:
pd['hw1'].max().
это дает вам серию всех значений в этом столбце, а max возвращает максимум.для среднего использования означает:

pd['hw1'].mean()


, если вы хотите найти максимум нескольких столбцов, вы можете использовать:

maximum_list = list()
for col in pd.columns:
    maximum_list.append(pd[col].max)
max = maximum_list.max()
avg = maximum_list.mean()

надеюсь, это поможет.

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