【发布时间】:2022-01-02 06:47:17
【问题描述】:
给定以下数组,我想用点替换逗号:
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)
我一直在尝试不同的方法,但我不知道如何做到这一点。
另外,我已将其作为pandas DataFrame 导入,但无法应用该功能:
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(',','.')))
有什么建议可以解决这个问题吗?
【问题讨论】:
-
df.applymap(lambda x: str(x.replace(',','.')))确实有效,将pd.__version__ == '0.18.1'上的逗号替换为点 -
您分配回结果了吗?
df =df.applymap(lambda x: str(x.replace(',','.'))) -
另外,为每一列执行此操作会更快:
df = df.apply(lambda x: x.str.replace(',','.')) -
伟大的@EdChum。我没有分配回结果。顺便说一句,apply 比 applymap() 快吗?
-
apply按列或按行工作,applymap对每个元素进行操作,所以在这种情况下,apply会更快。你也可以df.stack().str.replace(',','.').unstack()