在Python数据帧中为数字添加千位分隔符的简单方法

在Python数据帧中为数字添加千位分隔符的简单方法,python,pandas,number-formatting,separator,Python,Pandas,Number Formatting,Separator,假设我有一个pandas数据帧,并且我想给所有数字(整数和浮点)添加1000个分隔符,那么什么是一种简单快捷的方法呢?当使用,格式化一个数字时,您可以只使用'{:,}。格式: n = 10000 print '{:,}'.format(n) n = 1000.1 print '{:,}'.format(n) 在pandas中,您可以使用格式化程序参数来转换html 添加千分位分隔符实际上在stackoverflow上讨论了很多。您可以阅读或。到html中的formatters参数将采用字典 假

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

当使用
格式化一个数字时,您可以只使用
'{:,}。格式

n = 10000
print '{:,}'.format(n)
n = 1000.1
print '{:,}'.format(n)
在pandas中,您可以使用
格式化程序
参数来
转换html

添加千分位分隔符实际上在stackoverflow上讨论了很多。您可以阅读或。

到html中的formatters参数将采用字典


假设您只想显示(或呈现为html)带有千位分隔符的浮点/整数,您可以使用该分隔符,该分隔符是在0.17.1版中添加的:

将熊猫作为pd导入
df=pd.DataFrame({'int':[1200320],'flt':[5300.5712000000.23]})
format(“{:,}”)
若要将此输出呈现为html,请使用。

上的render方法,如果需要,“.”作为千位分隔符和“,”作为十进制分隔符,这将起作用:

Data=pd.read\u Excel(路径)

Data[my_numbers]=Data[my_numbers].map(“{:,.2f}.”格式).str.replace(“,”,“~”).str.replace(“,”,”).str.replace(“~”,”)

如果您想要三个小数而不是两个小数,请更改“2f”-->“3f”

Data[my_numbers]=Data[my_numbers].map(“{:,.3f}.”格式).str.replace(“,”,“~”).str.replace(“.”,“,”).str.replace(“~”,”)
使用或与此:



它不适用于具有整数的数据帧。仅适用于浮动
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)
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:,}')