【发布时间】:2020-09-28 10:41:41
【问题描述】:
我正在尝试制作一个简单的应用程序,以通过以下公式获取任何人在测试中的分数:
score=(平均成绩)/方差 例如,如果您的 20 分是 18 分,班级的平均分是 15 分,那么这个公式可以帮助您了解与其他人相比您的成绩如何。 我的代码打开一个位于我的电脑中的 excel 文件,读取点列将它们写入列表,然后获取平均值和方差并使用公式。 this is my excel file。 顺便说一句,excel中的成绩仅用于测试。 我已经尝试过这些代码(我不是使用类的专业人士,我试图利用它): 这是第一个
class taraz:
def __init__(self,file_name,file_dir,your_point):
self.file_name=file_name
self.file_dir=file_dir
self.your_point=your_point
def sum_ave():
f=pandas.read_excel(r (file_dir))
point_list=f['point'].tolist()
sum1=sum(point_list)
ave1=sum1/len(point_list)
def variance():
for i in point_list:
var1=sqrt(((i-ave1)**2)/len(point_list))
def taraz1():
taraz1=(your_point-ave1)/var1
print(taraz1)
print(taraz1)
这是第二个:
def taraz(file_name,file_dir,your_point):
def sum_ave():
f=pandas.read_excel(r (file_dir))
point_list=f['point'].tolist()
sum1=sum(point_list)
ave1=sum1/len(point_list)
def variance():
for i in point_list:
var1=sqrt(((i-ave1)**2)/len(point_list))
def taraz1():
taraz1=(your_point-ave1)/var1
print(taraz1)
从我刚得到的第一个代码并输出如下: main.taraz 对象位于 0x02528130> 从第二个开始,我根本没有得到输出。 无论如何,我很乐意使用您的提示。
【问题讨论】:
-
你没有理解每个变量的作用域。
-
比如第一个例子,
sum_ave方法里面的file_dir是什么?您希望它如何理解该变量? -
另外,当你可以使用
df.mean()和df.var()时,为什么要使用pandas 从excel 中读取数据,然后将该数据框转换为列表,然后定义自己的均值和方差函数?跨度> -
非常感谢,我不知道如果没有全局变量,我不能在函数外部使用变量。但我不熟悉 'df.mean' 和 'df.var' 请您进一步解释一下。
-
df是用于数据帧的常用变量名称,它是 pandas 使用的变量类型。我在下面的回答展示了如何直接使用这两种方法,而不是重新实现它们。
标签: python excel pandas class oop