gpt4 book ai didi

python - 写入Excel后如何将带有符号的值保留为数据框中的数字?

转载 作者:行者123 更新时间:2023-12-04 22:23:15 24 4
gpt4 key购买 nike

我目前正在使用 XlsxWriter 将数据框输出到 Excel 文件。
我的数据框如下。

Num     Des     price   percentage
321 pencil $23 24%
452 pen $12 29%
444 key $32 33%
111 eraser $49 14%

我使用的美元和百分号是代码:
df['price'] = df['price'].apply(lambda x: format(x, '.0%')) 
df['percentage'] = df['percentage'].apply(lambda x: format(x, "${:20,.0f}"))

但是在我通过 XlsxWriter 将数据框输出到 Excel 后,带有符号的值变成了字符串。

有没有办法可以保留数字类型?

最佳答案

不要使用 pandas 来格式化文件,使用它们来做他们最擅长的事情,pandas 用于数据操作,xlsxwriter 用于格式。

所以你的代码应该是这样的:

import pandas as pd

# Create your dataframe
df = pd.DataFrame({'Num': [321,452,444,111],
'Des': ['pencil','pen','key','eraser'],
'price': [23,12,32,49],
'percentage': [24,29,33,14]})

# Divide by 100 the column with the percentages
df['percentage'] = df['percentage'] / 100

# Pass the df into the xlsxwriter
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']

# Define the formats
cell_format1 = workbook.add_format({'num_format': '$#,##0'})
cell_format2 = workbook.add_format({'num_format': '0%'})

# Set the columns width and format
worksheet.set_column('C:C', 12, cell_format1)
worksheet.set_column('D:D', 12, cell_format2)

# Write the file
writer.save()

输出:

enter image description here

有关 xlsxwriter 格式类的更多信息,请查看 here ,它真的有你需要的一切。

关于python - 写入Excel后如何将带有符号的值保留为数据框中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60736148/

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