鱼C论坛

 找回密码
 立即注册
查看: 3210|回复: 11

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

[复制链接]
发表于 2023-5-23 17:29:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
百分比
43.75%
25.00%
43.75%
25.00%

Excel计算完得出的百分比格式,在Excel中看是文本格式,如何变为数字格式?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-23 17:30:05 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-5-23 17:34 编辑

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

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

  4. # 获取需要修改的工作表对象
  5. worksheet = workbook['your_worksheet_name']
复制代码

2.遍历需要修改的单元格,将百分比格式的文本转换为浮点数,并设置单元格格式为数字。
python
Copy Code
  1. from openpyxl.styles import numbers

  2. # 遍历需要修改的单元格
  3. for row in worksheet.iter_rows():
  4.     for cell in row:
  5.         # 如果单元格内容是百分比格式的文本,则转换为浮点数并设置数字格式
  6.         if cell.number_format == '0.00%':
  7.             cell.value = float(cell.value[:-1]) / 100
  8.             cell.number_format = numbers.FORMAT_NUMBER_00
复制代码

3.保存修改后的Excel文件。
python
Copy Code
# 保存修改后的Excel文件
  1. workbook.save('your_modified_excel_file.xlsx')
复制代码

通过以上步骤,可以将Excel中百分比格式的文本转换为数字格式。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-23 17:30:48 | 显示全部楼层
在Python中使用pandas库可以方便地操作Excel文件。如果Excel中的百分比被误识别为文本,可以通过下述步骤进行处理。

以下面的内容为例:

百分比
43.75%
25.00%
43.75%
25.00%

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

  1. import pandas as pd

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

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

  6. # 再次写入excel文件
  7. df.to_excel('文件路径.xlsx', index=False)
复制代码


这段代码将会读取Excel文件,将'百分比'列的数据从文本格式转换为数字格式,然后再将转换后的数据重新写入到Excel文件中。注意将'文件路径.xlsx'替换为你的实际文件路径。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


这个gpt,发了帖子都不跟我说一声 (我的)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我就是从浮点数改为百分比的,最后要显示百分比的效果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-23 17:42:20 | 显示全部楼层
如果你希望在Excel中显示为百分比形式,那么你可以在Excel中通过设置单元格格式来达到这个效果,因为Python写入Excel的数据只能是数字、文本、日期等基本格式,无法直接设置为百分比格式。

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

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

  1. import pandas as pd

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

  4. # 再次写入excel文件
  5. df.to_excel('文件路径.xlsx', index=False)
复制代码


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

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

现在,你的文本格式的百分比应该已经被转换为了百分比格式。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的 了解了,既然没有这种功能,我就不纠结了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-23 17:47:35 | 显示全部楼层
冰菲 发表于 2023-5-23 17:44
好的 了解了,既然没有这种功能,我就不纠结了,谢谢

理一下我吧,我最先回复的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-23 17:58:58 | 显示全部楼层
歌者文明清理员 发表于 2023-5-23 17:47
理一下我吧,我最先回复的

你的写的也挺好的,很详细,就是不是我想的结果,我原来就是浮点数,后改为百分比的,现在想要百分比显示数字格式,现在知道了 ,是不可能的了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好吧,确实不行
抱歉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-25 05:58:45 From FishC Mobile | 显示全部楼层
歌者文明清理员 发表于 2023-5-23 17:30
在Python中,可以使用openpyxl库来打开Excel文件并对单元格格式进行修改。
具体操作步骤如下:
1.使用ope ...

《Python》
《copy code》
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-25 16:43:11 | 显示全部楼层
liuhongrun2022 发表于 2023-5-25 05:58
《Python》
《copy code》

目前这个问题还在解决中……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 21:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表