在 Python 3 中的 Pandas DataFrame 中划分 2 个整数列返回舍入整数而不是浮点数

问题描述

我有以下熊猫数据帧:

df = pd.DataFrame({"id": [1,2,3],"A": [54,53,50],"B": [52,49,46]})

现在我想要一个新列 C,它是将列 B 中的值除以列 A 中的值的结果。但是,当我运行时:

df["C"] =  df["B"] / df["A"]

结果是:

    id  A   B   C
0   1   54  52  1
1   2   53  49  1
2   3   50  46  1

C 列似乎自动四舍五入为整数,这不应该发生。我阅读了其他一些 Stack Overflow 帖子,其中说在 Python 3(我正在使用)中,应该会自动转换为浮点数。从另一篇文章我试过这个:

df["C"] =  df["B"] * 1.00 / df["A"]

但这仍然给出了同样的错误结果。如何解决这个问题?

解决方法

试试。 -

df["C"] = df.A.astype(float) / df.B.astype(float)
,

问题是我设置的

pd.options.display.float_format = '{:,.0f}'.format

但是把它注释掉并认为这会解决它。相反,将其更改为:

pd.options.display.float_format = None

解决了问题