You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量修改Pandas DataFrame多列浮点值为百分比格式字符串

Pandas浮点列批量转换为百分比字符串方案

本方案会实际修改单元格存储的内容为字符串类型,而非仅调整展示格式,支持批量处理所有浮点列,可灵活配置是否带引号、保留小数位数。

基础实现(不带引号,保留2位小数)

import numpy as np
import pandas as pd

# 生成测试数据
df = pd.DataFrame(np.random.rand(5, 5))
# 筛选所有浮点类型列,避免误修改其他类型列
float_cols = df.select_dtypes(include=['float']).columns

# 批量转换为百分比字符串,实际修改存储值
df[float_cols] = df[float_cols].applymap(lambda x: f"{x:.2%}")

# 验证转换结果
print(df)
print("\n转换后列类型:")
print(df.dtypes)

转换后原浮点数值会直接变为字符串格式的百分比,例如0.795329会转为79.53%,列类型变为object(字符串存储类型),导出到CSV、Excel等文件时会直接保留百分比格式。

扩展:带引号的百分比格式

如果需要输出带单引号/双引号包裹的百分比字符串,只需修改格式化规则即可:

# 单引号包裹,示例输出:'79.53%'
df[float_cols] = df[float_cols].applymap(lambda x: f"'{x:.2%}'")

# 双引号包裹,示例输出:"79.53%"
df[float_cols] = df[float_cols].applymap(lambda x: f'"{x:.2%}"')

注意事项

  • 若需要调整保留小数位数,只需修改格式化字符串中的数字即可,比如保留1位小数改为f"{x:.1%}"
  • 转换后列类型变为字符串,后续如果需要做数值计算,需先将百分比字符串转换回浮点类型
  • 若只需处理指定列而非所有浮点列,将float_cols替换为自定义的列名列表即可,比如float_cols = ['列1','列2']
  • 若数据中存在空值,可在匿名函数中增加空值判断避免报错,示例:lambda x: f"{x:.2%}" if pd.notna(x) else ""

内容的提问来源于stack exchange,提问作者Nicolas Gervais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:48:01