Python Pandas如何给字符串DataFrame加千分位且不修改百分比行
实现方案
思路
仅对索引不是GHI的行做处理,将对应列的字符串数值转整数后格式化为带空格的千位分隔符格式,GHI行完全保留原值不做任何修改。
完整代码
import pandas as pd # 构造示例DataFrame(与给出的结构一致,所有值为字符串,IDX为索引) data = { "COL1": ["130", "5409", "34.9"], "COL2": ["0", "346", "25.3"] } df = pd.DataFrame(data, index=["ABC", "DEF", "GHI"]) df.index.name = "IDX" # 生成掩码:标记需要处理的行 process_mask = df.index != "GHI" # 遍历目标列,执行千位分隔符格式化 for col in ["COL1", "COL2"]: df.loc[process_mask, col] = df.loc[process_mask, col].apply( lambda x: f"{int(x):,}".replace(",", " ") ) # 打印验证结果 print(df)
输出结果
运行后打印的DataFrame完全匹配预期效果:
COL1 COL2 IDX ABC 130 0 DEF 5 409 346 GHI 34.9 25.3
说明
- 所有输出值仍为字符串类型,符合要求
- 索引为
GHI的行全程未参与计算,内容与原始值完全一致 - 千位分隔符通过替换Python默认的逗号分隔符为空格实现,格式完全匹配需求
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

