pandas 将文本转换为红色偏移中的浮动,输出相同

k4emjkb1  于 2023-03-06  发布在  其他
关注(0)|答案(2)|浏览(101)

我的视图返回文本字段输出,因为我用'%'符号连接字段。当我使用to_excel将此数据推入excel时,它作为文本而不是数字插入。有没有办法解决此问题,使我的excel工作表具有数字而不是文本?
红移码:

select concat(((("replace"((myfield)::text, '%'::text, ''::text))::numeric(10,2))::character varying)::text, '%'::text) AS myfield_formatted
from myview

将数据推送到Excel中的Python代码:

df3 = df3.apply(pd.to_numeric, errors='ignore')
 df3.to_excel(writer, sheet_name=comp,startrow=0, startcol= 0, index=False, float_format='%.2f')

我应该解决这个问题在红移水平或Pandas Dataframe 水平?

flvlnr44

flvlnr441#

有没有办法解决这个问题,使我的excel工作表有数字,而不是文本?
要做到这一点的方法是在将 Dataframe 导出到Excel之前将文本转换为Pandas数字。看起来你正在尝试这样做,但我认为添加到字符串中的%阻止了数字转换。
以下是使用以下步骤将某些字符串数据转换为百分比的示例:
1.将字符串转换为数字
1.除以100得到百分比
1.使用Excel百分比格式设置数字的格式

import pandas as pd

# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Names': ['Anna', 'Arek', 'Arun'],
                   'Grade': ['100',  '70',   '85']})

# Convert the percentage strings to percentage numbers.
# df['Grade'] = df['Grade'].str.replace('%', '') # Add this if required.
df['Grade'] = df['Grade'].astype(float)
df['Grade'] = df['Grade'].div(100)

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

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Add a percent number format.
percent_format = workbook.add_format({'num_format': '0%'})

# Apply the number format to Grade column.
worksheet.set_column(2, 2, None, percent_format)

# Close the Pandas Excel writer and output the Excel file.
writer.close()

输出:

dgiusagp

dgiusagp2#

您可以尝试在XlsxWriter级别设置列格式吗?

相关问题