帮助解决家庭作业问题:“让我们将给定人员的“数据科学经验”定义为该人在回归,分类和聚类中的最大得分。计算所有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)
到目前为止我尝试过的:
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)
答案 0 :(得分:0)
如果您想获得“ 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()
希望这会有所帮助。
答案 1 :(得分:0)
首先,您只想获取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()