以印度逗号样式输出的 Pandas 数据框

Posted

技术标签:

【中文标题】以印度逗号样式输出的 Pandas 数据框【英文标题】:Pandas dataframe output in Indian comma style 【发布时间】:2019-02-03 00:33:06 【问题描述】:

我已按照 https://codereview.stackexchange.com/questions/148853/convert-an-amount-to-indian-notation 中给出的提示进行操作

能够以印度逗号格式显示一个数字,其中123456789 将使用以下命令显示为1,23,34,56,789

print("INR ".format(currency_in_indian_format(123456789))).

但是,我无法将此功能扩展为在 pandas 数据框中显示所有值。有什么办法可以通过修改命令来完成:

pd.options.display.float_format = ':,.3f'.format 

【问题讨论】:

【参考方案1】:

如果是印度卢比,请使用:

from babel.numbers import format_currency
print(format_currency(123456789, 'INR', locale='en_IN').replace(u'\xa0', u' '))

输出:

₹ 12,34,56,789.00

注意 - 您的预期输出中数字 3 重复了两次,因此与我的不匹配。

【讨论】:

非常感谢 Anky_91。我了解如何对单个变量进行转换,但是可以对整个数据框或数据框的各个列进行此转换。例如 print(format_currency(df), 'INR', locale='en_IN')。替换(u'\xa0', u' ')) ? 是的。您可以为此使用 apply 功能 我尝试使用 apply 方法,但它不起作用,所以我创建了一个函数,它会为指定的列逐个元素地执行它并重新创建数据框。

以上是关于以印度逗号样式输出的 Pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章

从 pandas 数据框列中的对象中删除逗号

使用 Pandas 使用冒号、逗号和排序分隔值的数据框

在pandas数据框中搜索并替换点和逗号

将不同长度的逗号分隔数据行折叠成单列的首选 Pandas 解决方案 [重复]

使用 pandas 正则表达式基于逗号字符分隔列数据

Python将数据框转换为逗号分隔的行[重复]