我正在使用一个数据框,使用该数据框我要对每个值进行数学运算,将小数字按大数字进行分配。这应该留给我很小的小数点,但是我的数据框只是将它们转换为0。
一个例子是我将2577除以3022356,得到的是0.0008526460814013968,但数据框中的条目仅为0。
有什么办法可以使数据框显示正确的值?
我的代码中的示例:
for index, row in data.iterrows():
for key in row.keys():
row[key] = float(row[key]) / float(row['total'])
data.iloc[index] = row
此操作遍历每一行,遍历每一行中除最后两个键之外的所有键。然后决定总和的每个值。我已根据建议添加了float()
,但放回数据中的值只是0,而不是正确的值。
答案 0 :(得分:-1)
您可以将分子和分母设置为浮点数以确保转换正确,因此将其转换为float(2577)/ float(3022356)。
答案 1 :(得分:-1)
这是代码看起来的一个小例子,但是在您的DataFrame中,您可能想使用函数df.loc [(row_index),(column_index)]从DataFrame中调用数字。
number1 = float(2577)
number2 = float(3022356)
answer = number1/number2
print(answer)
您也可以尝试
x = df.loc[row,column]
flo = float(x)
x = "{0:.10f}".format(flo)
#print(x)
df.loc[row,column] = x
这将告诉它将其格式设置为10个小数位