【问题标题】:replace commas to decimal points in DataFrame columns to make them numeric [duplicate]将逗号替换为 DataFrame 列中的小数点以使它们成为数字 [重复]
【发布时间】:2017-11-08 00:50:40
【问题描述】:
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 列中的逗号替换为点并使这些列变为数字? a 列(或任意数量的前导列)应保持不变(也可以包含逗号)

【问题讨论】:

    标签: pandas


    【解决方案1】:
    import re    
    
    for col in ['b', 'c', 'd']:
        df[col] = pd.to_numeric(df[col].apply(lambda x: re.sub(',', '.', str(x))))
    

    【讨论】:

    • 谢谢,这将完成这项工作:for col in df.columns[6:]:
    【解决方案2】:

    只是关于这个主题的更新:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 2023-02-14
      • 2022-07-21
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多