使用 Pandas 解析时避免 Excel 的科学记数法舍入

Avoiding Excel's Scientific Notation Rounding when Parsing with Pandas

我有一个自动生成的 excel 文件,其中偶尔包含非常大的数字,例如 135061808695。在 excel 文件中,当您单击单元格时,它会显示完整的数字 135061808695,但在视觉上使用自动 "General" 格式,数字显示为 1.35063E+11.

当我在 Pandas 中使用 ExcelFile 时,它会提取科学记数法 1.350618e+11 中的值,而不是完整的 135061808695。有没有什么方法可以让 Pandas 提取全部值而不用弄乱 excel 文件?

Pandas 很可能会提取完整值,但不会在其默认输出中显示它:

df = pd.DataFrame({ 'x':[135061808695.] })

df.x
0    1.350618e+11  
Name: x, dtype: float64

标准python格式:

print "%15.0f" % df.x
135061808695

或在pandas中,转换为整数类型以获得整数格式:

df.x.astype(np.int64)

0    135061808695
Name: x, dtype: int64