我正在尝试在我的pandas数据框中创建一个新列,它是对数据集中的其他列执行的基本数学公式的结果。现在的问题是,列中捕获的值被极大地向上舍入,并且不代表真正的值。你知道吗
2.5364不应四舍五入为2.5,3.775不应四舍五入为3.8
我试图将分母声明为浮点数,以欺骗系统提供类似的值。ie 12/3.00应该是4.00,但仍然返回4.0。你知道吗
这是我目前正在做的:
normal_load = 3
df['FirstPart_GPA'] = ((df[first_part].sum(axis = 1, skipna = True))/(normal_load*5.00))
我将skipna设置为true,因为有时一列可能没有任何值,但我仍然希望能够计算GPA,而不让系统抛出任何错误,因为任何数字加上NAN都会得到NAN。你知道吗
我使用的数据帧如下所示:
dict = {'course1': [15,12],
'course2': [9,6],
'course3': [12,15],
'course4': [15,3],
'course5': [15,9],
'course6': [9,12]}
df = pd.DataFrame(dict)
注意,我的dataframe包含一些空值,因为有些课程是选修课。请帮帮我。我没有主意了。你知道吗
天哪!我现在明白问题所在了。我只是把我的文件扔进excel做了计算,结果证明代码是好的。很抱歉我占用了你的时间,同时我也很感激你的迅速反应。你知道吗
我一直以为GPA会有很多小数,但代码使用了5分的评分系统,这意味着如果一个学生在一门课程中有一个a,课程负荷为3,她会得到15分。你知道吗
一个学生每学期必须修5门课。所有5门课程都有3门课。这意味着所有5门课程=15门。你知道吗
因此,因为一个学生可能拥有的值大多是3的倍数(0,3,6,9,12,15),当我们把他所有的5门课程的所有单元的总和除以15,3总是会通过它,即3+12+12+3+9/15=13/5
5是如此的无问题,而且它不会以额外的小数溢出,不像10/3,它不断地在小数部分给我递归的3,5是合作的。因此13/5=2.6
可以添加如下所示的浮点格式:
使用此代码的示例:
输出:
您尚未在代码中定义第一个\u part变量,因此我将假设它是dataframe列的某个子集,例如:
数据帧中的所有数字都是3的整数倍,因此,当您将其中任何一个数字相加并除以15时,将始终得到小数点后不超过1位的十进制数。你的值不是四舍五入的,而是精确的。你知道吗
要显示小数点后有两位数字的数字,请添加一行:
现在
相关问题 更多 >
编程相关推荐