Python 3:在 pandas 数据框中显示长整数

Python 3: display long integers in pandas dataframe

我正在尝试使用简单的一行将 pandas 数据框中的列值设置为一些大数字:

df['Capital'] = 58143898.13876611

它在 df 中显示为格式 5.814380e+07。我想要它作为 58143898.

我试过的:

df['Capital'] = int(58143898.13876611)

类似问题:How to print all digits of a large number in python?, but it's outdated because I learned from NameError: global name 'long' is not definedpython3中long被int替换了,但是还是显示5.814380e+07。

然而,如果我只打印以下行,它会显示为 58143898。

In [2] int(58143898.13876611)

Out[2] 58143898

请帮忙!非常感谢您:)

你在抱怨pandas代表你的号码 floating point 而不是整数形式。 Coldspeed 指出 .astype() 可以 将列更改为所需的类型。

要更好地了解 pandas 对您的输入做了什么,请查看:

df.dtypes

您希望 Capital 列具有整数类型。

为了避免以后对类型胡闹, 在构建数据帧之前,您可能需要注意将输入转换为 int 。 Pandas 查看列中的 所有 值 并选择与整个值集兼容的类型。 所以例如包含 [1, 2.5, 3] 的列 将强制所有值浮动而不是整数。

值得注意的是 missing values 对此有非常显着的影响。 你可能想要这样的东西:

df2 = df1.dropna()

某些 FP 位模式被保留用作 NaN, 但是 pandas 遗憾的是 没有 保留 maxint, 也不是任何其他整数值, 对缺失数据的概念进行建模。 因此,像 [1, None, 3] 这样的输入将从 int 提升为 float。