当前位置: 首页 > 面试题库 >

抑制大熊猫的科学计数法吗?

孟成化
2023-03-14
问题内容

我在熊猫中有一个DataFrame,其中一些数字用科学计数法(或指数计数法)表示,如下所示:

                  id        value
id              1.00    -4.22e-01
value          -0.42     1.00e+00
percent        -0.72     1.00e-01
played          0.03    -4.35e-02
money          -0.22     3.37e-01
other            NaN          NaN
sy             -0.03     2.19e-04
sz             -0.33     3.83e-01

科学的表示法使应该进行轻松的比较成为不必要的困难。我认为正是21900的价值将其推向了其他水平。我的意思是1.0被编码。一!

这不起作用:

np.set_printoptions(supress=True)

而且pandas.set_printoptions也没有实现抑制,而且我已经pd.describe_options()绝望了,pd.core.format.set_eng_float_format()只能为所有其他float值打开它,而无法关闭它。


问题答案:

您的数据可能是objectdtype。这是数据的直接复制/粘贴。read_csv将其解释为正确的dtype。通常,您仅应object在类似字符串的字段上使用dtype。

In [5]: df = read_csv(StringIO(data),sep='\s+')

In [6]: df
Out[6]: 
           id     value
id       1.00 -0.422000
value   -0.42  1.000000
percent -0.72  0.100000
played   0.03 -0.043500
money   -0.22  0.337000
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33  0.383000

检查您的dtype是否为 object

In [7]: df.dtypes
Out[7]: 
id       float64
value    float64
dtype: object

这会将这个帧转换为objectdtype(注意,现在打印很有趣)

In [8]: df.astype(object)
Out[8]: 
           id     value
id          1    -0.422
value   -0.42         1
percent -0.72       0.1
played   0.03   -0.0435
money   -0.22     0.337
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33     0.383

这是将其转换回(astype(float))的方法

In [9]: df.astype(object).convert_objects()
Out[9]: 
           id     value
id       1.00 -0.422000
value   -0.42  1.000000
percent -0.72  0.100000
played   0.03 -0.043500
money   -0.22  0.337000
other     NaN       NaN
sy      -0.03  0.000219
sz      -0.33  0.383000

这就是objectdtype框架的样子

In [10]: df.astype(object).dtypes
Out[10]: 
id       object
value    object
dtype: object


 类似资料:
  • 我有一个带有浮动列的Pandas DataFrame,我将其转换为列表,然后转换为字符串,然后写入文本文件以供其他用途。 例如: 但是,我需要转换后的浮点数不使用科学记数法(本例中为7.569999997E-05)。抑制这些浮动的科学符号的最佳方式是什么?在Pandas数据框架中提前或在序列转换为列表后进行更合理吗? 我研究了“float\u format”参数,该参数可以使用“to\u csv”

  • 问题内容: 这是我的代码: 我的商显示为 有什么方法可以压制科学记数法并使其显示为 ?我将使用结果作为字符串。 问题答案: 但是你需要自己管理精度。例如,

  • 如何修改大熊猫中产生非常大数字的科学符号的组比操作输出的格式? 我知道如何在python中进行字符串格式设置,但在这里应用它时,我不知所措。 如果我转换成字符串,这会抑制科学记数法,但现在我想知道如何设置字符串格式和添加小数。

  • 我在pandas中有一个数据框,其中一些数字用科学符号(或指数符号)表示,如下所示: 科学记数法使得本应简单的比较变得不必要的困难。我认为是21900值搞砸了其他值。我的意思是1.0是编码的。一! 这不起作用: 而也没有实现抑制,我绝望地看着,而似乎只对所有其他浮点值打开它,没有能力关闭它。

  • 问题内容: 如何对pandas的groupby运算输出的格式进行修改,从而产生大量的科学计数法? 我知道如何在python中进行字符串格式化,但是在这里应用它时我很茫然。 如果我转换为字符串,这会抑制科学计数法,但是现在我只是想知道如何设置字符串格式并添加小数。 问题答案: 当然,我在评论中链接的答案不是很有帮助。您可以像这样指定自己的字符串转换器。 我不确定这是否是首选的方法,但是可以。 仅出于

  • 问题内容: 当我运行程序时,Pandas每次都会发出如下“未来警告”。 我得到了味精,但我只是想一次又一次地停止Pandas显示此类味精,是否可以设置任何buildin参数以使Pandas不会弹出“未来警告”? 问题答案: 在github上发现了这个…