pandas DataFrame不处理小数点数字

时间:2019-04-18 16:32:50

标签: python pandas

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

2 个答案:

答案 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个小数位