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

如何将Pandas DataFrame中的数值格式化为带逗号形式?

给Pandas DataFrame数值添加千位分隔符的解决方案

嘿,这个需求挺常见的,我给你两种实用的方案,分别适配不同的使用场景:

场景1:仅美化显示(不修改数据类型)

如果你只是想在查看DataFrame的时候让数值显示带千位分隔符,但不想改变数据本身的数值类型(比如后续还要做计算),可以用Pandas的style.format方法:

import pandas as pd

# 先构建你的示例DataFrame
df = pd.DataFrame({
    'X': [12345, 54321, 67890],
    'Y': [67890, pd.NA, 123456]
})

# 设置千位分隔符的显示格式
styled_df = df.style.format("{:,}")

# 查看美化后的结果
display(styled_df)

这样处理后,DataFrame在Jupyter或者其他支持样式的环境里会显示带逗号的数值,但底层数据还是int/float类型,完全不影响后续计算。

场景2:将数据转为带逗号的字符串(永久修改格式)

如果需要把数据本身转换成带千位分隔符的字符串(比如导出到Excel/CSV时要保留这种格式),可以用applymap配合自定义函数或者lambda表达式,同时要注意处理缺失值(N/A):

方法1:自定义函数处理

def format_num(x):
    # 先判断是否为缺失值,避免报错
    if pd.notna(x):
        return "{:,}".format(x)
    return x

# 应用到整个DataFrame
df_formatted = df.applymap(format_num)

方法2:更简洁的lambda写法

df_formatted = df.applymap(lambda x: "{:,}".format(x) if pd.notna(x) else x)

处理后的df_formatted会是这样的结构:

XY
012,34567,890
154,321
267,890123,456

此时所有非缺失的数值都变成了带逗号的字符串类型,适合需要导出或保存成特定格式的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:48:13