首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python到Excel的特定数字格式

Python到Excel的特定数字格式
EN

Stack Overflow用户
提问于 2018-06-20 04:15:40
回答 1查看 4.8K关注 0票数 1

我正在使用自定义函数,并尝试将特定格式应用于发送到Excel的输出文件。我希望正/负整数= 1234.34看起来像1,234/(1,234)。我的函数可以工作,但输出是一个字符串,我希望它在excel中显示为整数/浮点数/数字:

代码语言:javascript
复制
def formatter(x):
    if x > 0:
        return '{0:,.0f}'.format(x)
    else:
        return '({0:,.0f})'.format(abs(x))

for col in DFstats2.columns[1:]:
    DFstats2[col] = DFstats2[col].apply(formatter)

目前,要让Excel将这些数据视为数字,我必须右键选择“转换为数字”,以便对它们进行任何类型的操作。

如有任何指导,我们将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 08:59:11

如果希望Excel将字符串识别为带格式的数字,则必须使用pd.ExcelWriter格式设置方法。Python字符串格式化只能生成字符串。下面是一个简单的例子:

代码语言:javascript
复制
import pandas as pd
from string import ascii_uppercase

# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Positive': [1024.34, 2024.34, 3024.34, 4024.34],
                   'Negative': [-1024.34, -2024.34, -3024.34, -4024.34],
                   'Mixed': [1024.34, -2024.34, 3024.34, -4024.34]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter("column_formats.xlsx", engine='xlsxwriter')

# Connect dataframe to Excel worksheet
df.to_excel(writer, sheet_name='Formatted')

# Make handles for workbook/sheet
workbook  = writer.book
worksheet = writer.sheets['Formatted']

# Create positive/negative cell format
pos_neg_fmt = workbook.add_format({'num_format': '#,##0;(#,##0)'})

# Define the worksheet range to apply number format
cols = dict(zip(range(26), ascii_uppercase))
row = len(df)
format_range = '{}{}:{}{}'.format(cols[0], row, cols[len(df.columns)-1], row)

# Apply number formats to specified range
worksheet.set_column(format_range, None, pos_neg_fmt)

writer.save()

ExcelWriter方法为您提供了极大的灵活性,使您能够以特定于Excel的方式格式化数据。如果你愿意,你甚至可以添加条件格式。而且,根据您的要求,您永远不需要接触工作簿。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50936284

复制
相关文章

相似问题

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