当前位置: 首页 > 知识库问答 >
问题:

Pandasto_excel()方法在Excel中查看时,强制在64列中使用科学符号

闻人飞白
2023-03-14

我正在使用以下代码将数据框保存到excel:

    writer = pd.ExcelWriter(self.file_name, engine='openpyxl')
    writer.book = workbook
    writer.sheets = dict((ws.title, ws) for ws in workbook.worksheets)
    df.to_excel(writer, sheet_name=sheet_name, columns=columns, header=True, index=False, startrow=11, startcol=0)
    writer.save()

不幸的是,任何具有大int64 dtype的列都会像这样出现:

在《熊猫》中,我通过以下方式压制科学符号:

pd.set_option('display.float_format', lambda x: '%.f' % x) 
pd.set_option('display.precision', 0)

因此,当我打印数据帧时,int64列如下所示:

我已尝试将列转换为str类型,如下所示:

    def convert_int_cols_to_str(df):
        dtypes = df.dtypes
        for col, dtype in dtypes.iteritems():
            if dtype == 'int64':
                df[col] = df[col].astype(str)

在此应用之后,这些列的数据类型显示为object而不是int64,但在Excel中仍以科学表示法显示。任何关于如何避免这种情况的想法都将不胜感激!

以下是我使用的相关软件包的版本:

openpyxl==2.5.9
pandas==0.20.3

共有1个答案

赖诚
2023-03-14

哇对不起各位。原来我在脚本中错误的点应用了dtype转换。我上面描述的方法实际上可以完美地抑制Excel中64列的科学符号。我会把这个问题留着,以防它能帮助别人。

 类似资料:
  • 问题内容: 我有这种方法: 例如,如果value = 1且scale = 2,则输出为“结果:0.00”。我以为会是1.00E-5。因此,我的疑问是:如果BigDecimal的大小大于某个值(在我的示例中为2),我该如何强制将BigDecimal格式化为科学计数形式? 问题答案: 您可以将搭配使用:

  • 在iOS 8之前,我们将以下代码与supportedInterfaceOrientations和shouldAutoRotate委托方法结合使用,以强制应用程序定向到任何特定的方向。我使用下面的代码片段以编程方式将应用程序旋转到所需的方向。首先,我正在更改状态栏的方向。然后,仅显示并立即取消模式视图即可将视图旋转到所需的方向。 但这在iOS 8中是失败的。此外,我在stack overflow中看

  • 我试图生成excel文件,我的数据是超文本标记语言字符串的形式。html字符串中有超链接(锚标签)。列1有一个超链接和之后的一些文本。然而,当在Excel中查看时,它使该单元格中的所有文本都成为超链接。有可能限制吗?在浏览器中打开下面的文件,它工作正常。当在excel中打开时,它会超链接该单元格中的所有内容。

  • 我试图使用Auth在我的Kohana应用程序中强制使用强(er)密码,方法是使用以下正则表达式要求至少一个大写字母、一个小写字母、一个数字、一个非字母数字(特殊字符)和至少8个字符。 正则表达式正在工作,正如在Rubular上可以看到的那样。这是我在Kohana的Model\u Auth\u User中使用的代码,它扩展了ORM。 但是,当创建一个新的用户帐户或更改现有帐户的密码时,这个正则表达式

  • 我的应用程序在dropwizard中,最近我已将其上传到gcp上。对于日志记录,我们需要使用stackdriver。我不是刚刚被跟踪的gcp专家https://cloud.google.com/logging/docs/setup/java . 我使用日志附加器的方式在stackdriver上显示日志。 据我所知,要使用logging appender实现stackdriver日志记录,我们需要做

  • 在Hibernate中,要指定用于加入关联的列,请使用@JoinCol列注释,例如: 在大多数情况下,列的名称是用大写的类名加上。因此,从Hibernate自动派生它是合理的(例如,在Django的ORM中就是这样做的)。但这样的行为是以某种方式实施的吗?