Python 用点替换逗号

Python 用点替换逗号,python,pandas,Python,Pandas,给定以下数组,我想用点替换逗号: array(['0,140711', '0,140711', '0,0999', '0,0999', '0,001', '0,001', '0,140711', '0,140711', '0,140711', '0,140711', '0,140711', '0,140711', 0L, 0L, 0L, 0L, '0,140711', '0,140711', '0,140711', '0,140711', '0,1407

给定以下数组,我想用点替换逗号:

array(['0,140711', '0,140711', '0,0999', '0,0999', '0,001', '0,001',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', 0L, 0L, 0L, 0L, '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,1125688', '0,140711', '0,1125688',
       '0,140711', '0,1125688', '0,140711', '0,1125688', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711', '0,140711',
       '0,140711', '0,140711', '0,140711', '0,140711'], dtype=object)
我一直在尝试不同的方法,但我不知道如何做到这一点。 此外,我已将其作为数据帧导入,但无法应用以下功能:

df
      1-8        1-7
H0   0,140711   0,140711
H1     0,0999     0,0999
H2      0,001      0,001
H3   0,140711   0,140711
H4   0,140711   0,140711
H5   0,140711   0,140711
H6          0          0
H7          0          0
H8   0,140711   0,140711
H9   0,140711   0,140711
H10  0,140711  0,1125688
H11  0,140711  0,1125688
H12  0,140711  0,1125688
H13  0,140711  0,1125688
H14  0,140711   0,140711
H15  0,140711   0,140711
H16  0,140711   0,140711
H17  0,140711   0,140711
H18  0,140711   0,140711
H19  0,140711   0,140711
H20  0,140711   0,140711
H21  0,140711   0,140711
H22  0,140711   0,140711
H23  0,140711   0,140711 

df.applymap(lambda x: str(x.replace(',','.')))

有什么建议可以解决这个问题吗

由于操作不到位,您需要重新分配操作结果,此外,您还可以使用或和矢量化来更快地完成此操作:

In [5]:
df.apply(lambda x: x.str.replace(',','.'))

Out[5]:
          1-8        1-7
H0   0.140711   0.140711
H1     0.0999     0.0999
H2      0.001      0.001
H3   0.140711   0.140711
H4   0.140711   0.140711
H5   0.140711   0.140711
H6          0          0
H7          0          0
H8   0.140711   0.140711
H9   0.140711   0.140711
H10  0.140711  0.1125688
H11  0.140711  0.1125688
H12  0.140711  0.1125688
H13  0.140711  0.1125688
H14  0.140711   0.140711
H15  0.140711   0.140711
H16  0.140711   0.140711
H17  0.140711   0.140711
H18  0.140711   0.140711
H19  0.140711   0.140711
H20  0.140711   0.140711
H21  0.140711   0.140711
H22  0.140711   0.140711
H23  0.140711   0.140711

In [4]:    
df.stack().str.replace(',','.').unstack()

Out[4]:
          1-8        1-7
H0   0.140711   0.140711
H1     0.0999     0.0999
H2      0.001      0.001
H3   0.140711   0.140711
H4   0.140711   0.140711
H5   0.140711   0.140711
H6          0          0
H7          0          0
H8   0.140711   0.140711
H9   0.140711   0.140711
H10  0.140711  0.1125688
H11  0.140711  0.1125688
H12  0.140711  0.1125688
H13  0.140711  0.1125688
H14  0.140711   0.140711
H15  0.140711   0.140711
H16  0.140711   0.140711
H17  0.140711   0.140711
H18  0.140711   0.140711
H19  0.140711   0.140711
H20  0.140711   0.140711
H21  0.140711   0.140711
H22  0.140711   0.140711
H23  0.140711   0.140711
这里的关键是将结果分配回:


df=df.stack()

e、 g

从:

千:str,可选的千分隔符

decimal:str,要识别为小数点的默认“.”字符 (例如,使用“,”表示欧洲数据)


如果需要在特定列中用点替换逗号,请尝试

    data["column_name"]=data["column_name"].str.replace(',','.')

为避免“str”对象没有属性“str”错误。

df.applymap(lambda x:str(x.replace(“,”,“,”))
有效,请将
pd上的逗号替换为点。uuu version\uuuu==“0.18.1”
是否分配回结果
df=df.applymap(lambda x:str(x.replace(',','))
而且对每一列执行此操作会更快:
df=df.apply(lambda x:x.str.replace(',','))
Great@EdChum。我没有把结果分配回去。顺便说一句,apply比applymap()快?
apply
按列或按行工作,
applymap
对每个元素进行操作,因此在这种情况下,yes
apply
会更快。您还可以执行
df.stack().str.replace(',',').unstack()
Sweet!根据前面的建议,我将数据视为字符串时出错。这将在数据帧上显示一个整数值
    data["column_name"]=data["column_name"].str.replace(',','.')