将逗号替换为数据帧列中的小数点,以使其数字


import pandas as pd    
df = pd.DataFrame([["one", 1.2, "", "4,3"],
   ["two","1,7", "2,4", 0.55],
   ["three","", 5.4, "3,9"]], 
   columns=['a','b','c','d'])

如何将B列中的逗号替换为D到D点并使这些列数字?A列(或任何数量的领先列(应保留不变(也可以包含逗号(

import re    
for col in ['b', 'c', 'd']:
    df[col] = pd.to_numeric(df[col].apply(lambda x: re.sub(',', '.', str(x))))

只是此主题的更新:

Pandas现在添加了replace方法,因此我们可以避免使用lambda。

df.replace(to_replace=",", value=".", regex=True)

最新更新