Python 3.x 在Python3中,在DataFrame中除以2个整数列将返回舍入整数而不是浮点

Python 3.x 在Python3中,在DataFrame中除以2个整数列将返回舍入整数而不是浮点,python-3.x,pandas,division,Python 3.x,Pandas,Division,我有以下数据帧: df = pd.DataFrame({"id": [1, 2, 3], "A": [54, 53, 50], "B": [52, 49, 46]}) 现在我需要一个新的列C,它是将列B中的值除以列a的值的结果。但是,当我跑步时: df["C"] = df["B"] / df["A"

我有以下数据帧:

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似乎自动向上舍入为整数,这是不应该发生的。我读了一些其他的堆栈溢出帖子,上面说在Python3(我正在使用)中,到float的转换应该自动发生。在另一篇文章中,我尝试了以下内容:

df["C"] =  df["B"] * 1.00 / df["A"]
但这仍然给出了同样的错误结果。如何解决这个问题?

问题是我设定的

pd.options.display.float_format = '{:,.0f}'.format
但是评论出来,认为这会解决问题。改为:

pd.options.display.float_format = None
解决了问题

试试看-

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

对于所讨论的示例,我无法复制问题,这将返回预期的
[0.9629629629629629,0.9245283018867925,0.92]
对于我,您是否碰巧使用了任何显示设置?像
pd.options.display.float_format
?是的,我首先设置了pd.options.display.float_format='{:,.0f}'。format,但我注释了这一行并重新运行代码。这就是问题所在吗?这就是问题所在。设置
pd.options.display.float\u format=None
并重新运行您真是太棒了,它可以工作了!如果你想赢得声誉,我会接受你的回答,如果你写它很高兴它有帮助。:)为了完整起见,你介意回答这个问题并接受同样的问题吗。提前谢谢