将整列整数转换为字符串,在 Pandas 中使用逗号分隔千位

Posted

技术标签:

【中文标题】将整列整数转换为字符串,在 Pandas 中使用逗号分隔千位【英文标题】:Converting a full column of integer into string with thousands separated using comma in pandas 【发布时间】:2017-05-09 22:40:07 【问题描述】:

假设我使用 python 中的 pandas 将人口数据存储在数据框的列中,并将国家名称作为行索引。如何使用逗号将整列数字转换为字符串千位分隔符。 基本上,我需要12345678,整数,转换成12,345,678。

【问题讨论】:

【参考方案1】:

使用apply 格式化数字。

In [40]: ps.apply(':,'.format)
Out[40]:
CountryA    12,345,678
CountryB     3,242,342
dtype: object

In [41]: ps
Out[41]:
CountryA    12345678
CountryB     3242342
dtype: int64

【讨论】:

这可能吗 --> 778123232232 --> 77,81,23,323,232 ? 您可以通过locale.setlocale(locale.LC_NUMERIC, "en_IN") 做到这一点,请参阅***.com/a/14238258 @MohammadYusufGhazi 你从哪里得到的数据 这是默认设置 - docs.python.org/3/library/… - 使用逗号作为千位分隔符 - ':,'.format(1234567890) == '1,234,567,890'【参考方案2】:

您也可以使用正则表达式。

df['Population'].str.replace(r"(?!^)(?=(?:\d3)+$)", ",")

查看演示。

https://regex101.com/r/cVYAGw/1

【讨论】:

注意:如果 Population 是任何其他类型,则必须转换类型。 df['Population'].astype(str).str.replace..

以上是关于将整列整数转换为字符串,在 Pandas 中使用逗号分隔千位的主要内容,如果未能解决你的问题,请参考以下文章

将 pandas 数据框列从十六进制字符串转换为 int

将 JSON 时间戳字符串转换为 pandas 数据框中的 python 日期

在 Python 中将一列日期时间转换为纪元

将整列加上另一列的单行相加并显示在第三列中

PL/R - 将整列作为参数传递

Pandas 尝试将字符串转换为整数时出错