冰菲 发表于 2023-5-23 17:29:18

python 计算Excel数字变为百分比格式后,Excel打开后为文本格式了,如何改为数字格式

百分比
43.75%
25.00%
43.75%
25.00%

Excel计算完得出的百分比格式,在Excel中看是文本格式,如何变为数字格式?

歌者文明清理员 发表于 2023-5-23 17:30:05

本帖最后由 歌者文明清理员 于 2023-5-23 17:34 编辑

在Python中,可以使用openpyxl库来打开Excel文件并对单元格格式进行修改。
具体操作步骤如下:
1.使用openpyxl库打开Excel文件并获取到需要修改的工作表对象。
python
Copy Code
import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('your_excel_file.xlsx')

# 获取需要修改的工作表对象
worksheet = workbook['your_worksheet_name']
2.遍历需要修改的单元格,将百分比格式的文本转换为浮点数,并设置单元格格式为数字。
python
Copy Code
from openpyxl.styles import numbers

# 遍历需要修改的单元格
for row in worksheet.iter_rows():
    for cell in row:
      # 如果单元格内容是百分比格式的文本,则转换为浮点数并设置数字格式
      if cell.number_format == '0.00%':
            cell.value = float(cell.value[:-1]) / 100
            cell.number_format = numbers.FORMAT_NUMBER_00
3.保存修改后的Excel文件。
python
Copy Code
# 保存修改后的Excel文件
workbook.save('your_modified_excel_file.xlsx')
通过以上步骤,可以将Excel中百分比格式的文本转换为数字格式。

isdkz 发表于 2023-5-23 17:30:48

在Python中使用pandas库可以方便地操作Excel文件。如果Excel中的百分比被误识别为文本,可以通过下述步骤进行处理。

以下面的内容为例:

百分比
43.75%
25.00%
43.75%
25.00%

以下是将文本格式的百分比转化为数字格式的代码:

import pandas as pd

# 读取excel文件
df = pd.read_excel('文件路径.xlsx')

# 转换百分比列为数字格式,先移除'%',然后转换为float类型,最后除以100
df['百分比'] = df['百分比'].str.rstrip('%').astype('float') / 100.0

# 再次写入excel文件
df.to_excel('文件路径.xlsx', index=False)


这段代码将会读取Excel文件,将'百分比'列的数据从文本格式转换为数字格式,然后再将转换后的数据重新写入到Excel文件中。注意将'文件路径.xlsx'替换为你的实际文件路径。

歌者文明清理员 发表于 2023-5-23 17:34:18

isdkz 发表于 2023-5-23 17:30
在Python中使用pandas库可以方便地操作Excel文件。如果Excel中的百分比被误识别为文本,可以通过下述步骤进 ...

这个gpt,发了帖子都不跟我说一声{:10_277:} (我的)

冰菲 发表于 2023-5-23 17:39:53

isdkz 发表于 2023-5-23 17:30
在Python中使用pandas库可以方便地操作Excel文件。如果Excel中的百分比被误识别为文本,可以通过下述步骤进 ...

我就是从浮点数改为百分比的,最后要显示百分比的效果

isdkz 发表于 2023-5-23 17:42:20

如果你希望在Excel中显示为百分比形式,那么你可以在Excel中通过设置单元格格式来达到这个效果,因为Python写入Excel的数据只能是数字、文本、日期等基本格式,无法直接设置为百分比格式。

在Python端,你可以将数据转换为百分比形式的文本,但是在Excel中,这些仍然会被视为文本而非百分比格式。为了在Excel中将其显示为百分比,你需要在Excel中手动改变单元格的格式。

以下是在Python中将浮点数转换为百分比形式的代码:

import pandas as pd

# 假设你的数据在dataframe df的'百分比'列
df['百分比'] = df['百分比'].apply(lambda x: '{:.2%}'.format(x))

# 再次写入excel文件
df.to_excel('文件路径.xlsx', index=False)


但是需要注意,当你打开Excel文件时,'百分比'列依然会是文本格式,你需要手动将其转换为百分比格式。以下是在Excel中将文本转换为百分比的步骤:

1. 打开Excel文件
2. 选中包含百分比的列
3. 右键点击,然后选择“格式化单元格”
4. 在弹出的窗口中,选择“百分比”
5. 点击“确定”

现在,你的文本格式的百分比应该已经被转换为了百分比格式。

冰菲 发表于 2023-5-23 17:44:57

isdkz 发表于 2023-5-23 17:42
如果你希望在Excel中显示为百分比形式,那么你可以在Excel中通过设置单元格格式来达到这个效果,因为Python ...

好的 了解了,既然没有这种功能,我就不纠结了,谢谢

歌者文明清理员 发表于 2023-5-23 17:47:35

冰菲 发表于 2023-5-23 17:44
好的 了解了,既然没有这种功能,我就不纠结了,谢谢

理一下我吧,我最先回复的

冰菲 发表于 2023-5-23 17:58:58

歌者文明清理员 发表于 2023-5-23 17:47
理一下我吧,我最先回复的

你的写的也挺好的,很详细,就是不是我想的结果,我原来就是浮点数,后改为百分比的,现在想要百分比显示数字格式,现在知道了 ,是不可能的了{:5_109:}

歌者文明清理员 发表于 2023-5-23 18:00:27

冰菲 发表于 2023-5-23 17:58
你的写的也挺好的,很详细,就是不是我想的结果,我原来就是浮点数,后改为百分比的,现在想要百分比显示 ...

好吧,确实不行
抱歉

liuhongrun2022 发表于 2023-5-25 05:58:45

歌者文明清理员 发表于 2023-5-23 17:30
在Python中,可以使用openpyxl库来打开Excel文件并对单元格格式进行修改。
具体操作步骤如下:
1.使用ope ...

《Python》
《copy code》

歌者文明清理员 发表于 2023-5-25 16:43:11

liuhongrun2022 发表于 2023-5-25 05:58
《Python》
《copy code》

目前这个问题还在解决中……{:10_295:}{:10_304:}
页: [1]
查看完整版本: python 计算Excel数字变为百分比格式后,Excel打开后为文本格式了,如何改为数字格式