【问题标题】:Converting money formatted strings to floats keeping cents, points separation dataframe将货币格式的字符串转换为保持美分、点分隔数据框的浮点数
【发布时间】:2021-08-07 18:38:34
【问题描述】:

字符串格式的df数字:

1.160.00
6.76
1.080.029.904.46
1402.0
172.958.956.83

如何将它们转换为浮点类型但保留美分?

1160.00
6.76
1080029904.46

etc.

我只是尝试了 astype('float') 或 pd.to_numeric,但它一直抛出错误:

ValueError: Unable to parse string " 1.160.00"

【问题讨论】:

    标签: python string dataframe currency


    【解决方案1】:

    如果你有数据框:

                   col1
    0          1.160.00
    1              6.76
    2  1.080.029.904.46
    3            1402.0
    4    172.958.956.83
    

    然后:

    df["col1"] = df["col1"].apply(
        lambda x: "".join(x.split(".", maxsplit=x.count(".") - 1))
    )
    print(df)
    

    打印:

                col1
    0        1160.00
    1           6.76
    2  1080029904.46
    3         1402.0
    4   172958956.83
    

    【讨论】:

      猜你喜欢
      • 2020-05-22
      • 1970-01-01
      • 2021-12-25
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2019-06-03
      相关资源
      最近更新 更多