gpt4 book ai didi

python - Python 到 Excel 的特定数字格式

转载 作者:行者123 更新时间:2023-12-01 01:48:55 25 4
gpt4 key购买 nike

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

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 将这些数据视为数字,我必须右键选择“转换为数字”才能对它们进行任何类型的操作。

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

最佳答案

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

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 方法为您提供了极大的灵 active ,可以以 Excel 特定的方式格式化数据。如果您愿意,您甚至可以添加条件格式。根据您的要求,您永远不必接触工作簿。

关于python - Python 到 Excel 的特定数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50936284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com