鱼C论坛

 找回密码
 立即注册
查看: 2637|回复: 7

小白求助,想问一下:python中的DataFrame一些问题

[复制链接]
发表于 2020-2-27 18:41:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Demon猫 于 2020-2-28 13:14 编辑

想问一下:代码大概是这样的(已经修改了):


想法是如果科目难度有变化,例如数学很难,最高分也才60分,那么算总成绩的时候,数学的权重就被低估了,所以为了记录同学的各科成绩综合分,想用排名来打分,用排名分来综合看看,这样可以去除科目难度的权重不一致
想着写写就出各种问题了


  1. import pandas as pd

  2. #导入同学分科成绩数据
  3. Classmate = pd.DataFrame([['张三',120,60],
  4.                           ['李四',150,80],
  5.                           ['王五',135,59],
  6.                           ['小四',122,55],
  7.                           ['陈六',143,65],
  8.                           ['李七',96,62],
  9.                           ['张八',102,54]],columns = ["name","math","english"])
  10. #科目名字
  11. Name = ["math","english"]
  12. for name in Name:
  13.         #先按照每科成绩排序
  14.         score = Classmate.sort_walues(by=name,ascending=False)[name]

  15.         #先定义个DataFrames对象
  16.         score = pd.DataFrame(score)   #试过取消这步也是不行的
  17.         score[name+ 'score'] = 0
  18.         #分组的数量
  19.         scoregroipnum = len(score)//4
  20.        
  21.         #不同分组分数的判断
  22.         for i in range(4):
  23.                 if i == 3:
  24.                         Classmate[name+ 'score'][(i+1)*scoregroipnum:] = i + 1
  25.                 Classmate[name+ 'score'][i*scoregroipnum: (i+1)*scoregroipnum] = i + 1
  26.         #将排名分数合并到原Classmate
  27.         Classmate = pd.concat([Classmate,score[name+"score"]],axis=1)
复制代码


为什么会出现
这里
Classmate[name+ 'score'][i*scoregroipnum: (i+1)*scoregroipnum] = i + 1

有'int' object does not support item assignment
这样的错误提醒
求解决方法
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-27 18:45:38 | 显示全部楼层
本帖最后由 Demon猫 于 2020-2-27 20:45 编辑

之前的是在在线平台写的怎么搞都不行,然后去吃饭再回来就炸了了。下面的是临时回忆写的

是想说,可以根据同学各种科目的分数排名来分组打分,然后在计算排名分数总和得出综合的分数的(这样的话可以避免不同科目难度所产生的分数上权重的不一致),就尝试写了写代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 18:46:08 | 显示全部楼层
我只想问Classmate在哪?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 18:49:51 | 显示全部楼层
本帖最后由 Demon猫 于 2020-2-27 21:02 编辑
qiuyouzhi 发表于 2020-2-27 18:46
我只想问Classmate在哪?


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 18:52:22 | 显示全部楼层
Demon猫 发表于 2020-2-27 18:49
在前面做好的一个列表,按照名字和身高排序,有答应过,是可以的
例如
张三  168

你这代码写的就有问题,那name和'score'又是哪里来的?
可不可以把代码发全
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-27 20:13:12 | 显示全部楼层
本帖最后由 Demon猫 于 2020-2-27 22:23 编辑
qiuyouzhi 发表于 2020-2-27 18:52
你这代码写的就有问题,那name和'score'又是哪里来的?
可不可以把代码发全


写全了,补在1楼,第一次在鱼C论坛发帖,不知道发出的信息可以编辑,废了很多楼= =
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表