【问题标题】:Convert currency dataframe column to float将货币数据框列转换为浮点数
【发布时间】:2021-08-18 18:29:52
【问题描述】:

我需要将 DataFrame 中的货币列转换为浮点值,以便计算一些统计数据。 该列的外观如下:

10.785,177
10.783,554
10.781,931
10.782,094
10.780,843
656,530

结果应该是:

10785.177
10783.554
10781.931
10782.094
10780.843
656.530

我试图用正则表达式做一些事情,但我对此知之甚少。任何帮助表示赞赏!

【问题讨论】:

    标签: python regex pandas


    【解决方案1】:

    你可以像这样使用df.apply()

    
    df['col'].apply(lambda x: x.replace(".", "").replace(",",".")).astype(float)
    
    

    【讨论】:

      【解决方案2】:

      你需要去掉千位分隔符(.),replace十进制分隔符(,)和.,然后你可以使用pd.to_numeric

      >>> df['col'].str.replace('.', '', regex=False).str.replace(',', '.', regex=False)\
      ...          .transform(pd.to_numeric)
      0    10785.177
      1    10783.554
      2    10781.931
      3    10782.094
      4    10780.843
      5      656.530
      Name: col, dtype: float64
      

      【讨论】:

      • 它有效,谢谢。只是一个问题,有没有办法就地执行此操作,还是我必须手动将系列添加到数据框中?
      • 您可以随时将其重新分配到同一列df['col'] = df['col'].str...
      • 不用担心@DaviMagalhães。祝你代码的其余部分好运
      猜你喜欢
      • 2021-12-25
      • 2020-05-22
      • 2020-10-05
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      相关资源
      最近更新 更多