首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >panda样式:导出数字-格式为excel

panda样式:导出数字-格式为excel
EN

Stack Overflow用户
提问于 2019-06-27 00:58:06
回答 1查看 418关注 0票数 1

当前的Pandas styling help page提到

还可以使用以下伪CSS属性来设置excel特定的样式属性:

支持

  • number-format导出到excel

然而,没有工作的例子给出,并试图适应所提供的函数,我没有得到任何地方,根据以下:

代码语言:javascript
复制
import numpy as np
import pandas as pd

def format2zero(val):
    frmat  = '{0:,.0f}'
    return 'number-format: %s' % frmat


np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
               axis=1)
df.iloc[0, 2] = np.nan

df.style.\
    apply(format2zero).\
    to_excel('styled.xlsx', engine='openpyxl')

我知道它是相对较新的,如果有人让它工作的话会很神奇?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-27 03:05:07

我相信您已经将Excel术语用于number-format,而不是python术语。在Excel中,当你右击一个单元格并选择Format cells/Custom时,你会看到一些选项,你可以定义你自己的选项。我认为#,##0是您想要的小数位数为零的代码:

代码语言:javascript
复制
def format2zero(val):
    return 'number-format: #,##0'

IIUC您应该使用df.style.applymap而不是df.style.apply,因为您希望将format2zero应用于每个单元格,而不是每行或每列。

在Excel中查看时,在代码中进行这两处更改会得到以下输出:

代码语言:javascript
复制
    A   B   C   D   E
0   1   1       0  -1
1   2  -1  -1   1   0
2   3  -2   0   1   2
3   4   1   0   0   1
4   5   1   1   0   1
5   6  -1   1   1   0
6   7   0   1   0   2
7   8   0   1   0   1
8   9   2  -1   1  -2
9   10  0   1  -1   0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56777777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档