如何在Python中使用逗号或点分割数据帧中的数字?

如何在Python中使用逗号或点分割数据帧中的数字?,python,python-3.x,Python,Python 3.x,我需要一些关于数字的转换,比如Python中的100000到100.000。我该怎么做 我用Formatnumber“.d”试过了。但我有数据框,或者列表。当我执行代码时,它会显示传递给numpy.ndarray.format的不受支持的格式字符串 TypeError:传递给numpy.ndarray.format的格式字符串不受支持 这里有一种替代方法,可以实现您在不使用format函数而是依赖locale模块的情况下尝试执行的操作: import pandas import locale l

我需要一些关于数字的转换,比如Python中的100000到100.000。我该怎么做

我用Formatnumber“.d”试过了。但我有数据框,或者列表。当我执行代码时,它会显示传递给numpy.ndarray.format的不受支持的格式字符串

TypeError:传递给numpy.ndarray.format的格式字符串不受支持


这里有一种替代方法,可以实现您在不使用format函数而是依赖locale模块的情况下尝试执行的操作:

import pandas
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')

users = pandas.DataFrame(data=[100, 1000, 10000, 100000], columns=["colA"])
users["colA"] = [locale.format("%d", v, 1) for v in users.iloc[:,0]]
print(users)
结果:

      colA
0      100
1    1.000
2   10.000
3  100.000

您基本上是在序列上应用格式,而不是指定轴

尝试此操作,它将在第3列中的所有值中添加逗号:

df.iloc[:,[3]] = df.iloc[:,[3]].apply(lambda x:format (x.values[0], ',d'), axis=1)

提供完整的代码来帮助您实现这一点。
      colA
0      100
1    1.000
2   10.000
3  100.000
df.iloc[:,[3]] = df.iloc[:,[3]].apply(lambda x:format (x.values[0], ',d'), axis=1)