如何将千位分隔符添加到熊猫中的数字

新手上路,请多包涵

假设我有一个 pandas 数据框,并且我想为所有数字(整数和浮点数)添加千位分隔符,那么简单快捷的方法是什么?

原文由 DanZimmerman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 359
2 个回答

使用 , 格式化数字时,您可以只使用 '{:,}'.format

 n = 10000
print '{:,}'.format(n)
n = 1000.1
print '{:,}'.format(n)

在 pandas 中,您可以将 formatters 参数用于 to_html 如此 所述。

 num_format = lambda x: '{:,}'.format(x)
def build_formatters(df, format):
    return {
        column:format
        for column, dtype in df.dtypes.items()
        if dtype in [ np.dtype('int64'), np.dtype('float64') ]
    }
formatters = build_formatters(data_frame, num_format)
data_frame.to_html(formatters=formatters)

添加千位分隔符实际上已经在 stackoverflow 上进行了相当多的讨论。你可以 在这里这里 阅读。

原文由 2ps 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Series.mapSeries.apply 解决方案

 df['col'] = df['col'].map('{:,}'.format)
df['col'] = df['col'].map(lambda x: f'{x:,}')

 df['col'] = df['col'].apply('{:,}'.format)
df['col'] = df['col'].apply(lambda x: f'{x:,}')

原文由 jezrael 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题