如何使用逗号将数字转换为千位分隔符? [复制]

Posted

技术标签:

【中文标题】如何使用逗号将数字转换为千位分隔符? [复制]【英文标题】:How do I convert a number to thousand separator using comma? [duplicate] 【发布时间】:2019-07-24 06:53:17 【问题描述】:

我有一个 pandas 数据框,有些行是数字,我想将它们转换为千位分隔符。试过这个thousands=','但不工作,尝试了其他解决方案,但我怎样才能在to_csv之前将整个数据帧转换为千位分隔符

我想要的示例:31752000 转换为31,752,000

这是我正在尝试的代码:

url = 'https://finance.yahoo.com/quote/RDS-A/balance-sheet?p=RDS-A'
table = pandas.read_html(url, attrs=
    'class': 'Lh(1.7) W(100%) M(0)', header=0)
df = pandas.DataFrame(table[0])
print(df)

#Then save to csv
#df.to_csv('ydata.csv', index=False, header=True)

【问题讨论】:

【参考方案1】:

您可以像这样手动添加逗号(仅适用于小于 1,000,000,000 的数字):

thousandSeperatedStrings=[]
for x in df:
    string=""
    if(x>=1000000):
        x=x%1000000000
        string=str(int(x/1000000))+","
        x=x%1000000
        string=string+str(int(x/100000))
        x=x%100000
        string=string+str(int(x/10000))
        x=x%10000
        string=string+str(int(x/1000))+","
        x=x%1000
        string=string+str(int(x/100))
        x=x%100
        string=string+str(int(x/10))
        x=x%10
        string=string+str(int(x))
    elif(x>=1000):
        x=x%1000000
        string=string+str(int(x/1000))+","
        x=x%1000
        string=string+str(int(x/100))
        x=x%100
        string=string+str(int(x/10))
        x=x%10
        string=string+str(int(x))
    else:
        string=str(int(x))
    thousandSeperatedStrings.append(string)

【讨论】:

以上是关于如何使用逗号将数字转换为千位分隔符? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

解析存储为文本的数字,逗号为十进制,点为千位

C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

转换数据框列时如何删除千位逗号分隔符? [复制]

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

如何将双精度值格式化为点后两位小数且分隔符为千位的字符串?

当某些数字包含逗号作为千位分隔符时如何读取数据?