-1

我正在使用一个数据框,我用它对每个值执行数学运算,将小数除以大数。这应该给我留下非常小的小数点数字,但我的数据框只是将它们转换为 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,而不是正确的值。

4

2 回答 2

-1

您可以将分子和分母设置为浮点数以确保转换正确,因此它将是 float(2577)/float(3022356)。

于 2019-04-18T16:41:22.873 回答
-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 位

于 2019-04-18T16:53:38.750 回答