在 pandas DataFrame 中划分 2 个整数列 Python 3 returns 舍入整数而不是浮点数
Dividing 2 integer columns in pandas DataFrame in Python 3 returns rounded integer instead of float
我有以下 pandas DataFrame:
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 posts,其中说在 Python 3(我正在使用)中应该自动转换为 float。从另一个 post 我试过这个:
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)
我有以下 pandas DataFrame:
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 posts,其中说在 Python 3(我正在使用)中应该自动转换为 float。从另一个 post 我试过这个:
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)