【问题标题】:Problem with string to float conversion of values in pandas熊猫中字符串到浮点值转换的问题
【发布时间】:2022-01-09 03:11:42
【问题描述】:

我的 pandas 数据框列的价格大多采用 r'\d+\.\d+' 格式,这是您所期望的。但是,当我尝试将其转换为 float 类型时,它表示我的格式为 \d+\.\d+\.\d+ 的数字很少,例如“6041.60.1”。
如何使用 series.str.replace() 将它们全部转换为 \d+\.\d+ 格式?预期结果是“6041.60”。

【问题讨论】:

  • '6041.60.1' 预期答案是什么,6041.601 还是 604160.1?
  • 预期为“6041.60”。

标签: regex pandas


【解决方案1】:

我建议使用 .apply

df1["column"] = df1["column"].apply(lambda x:  "".join(x.rsplit(".",1)), axis = 1 )#remove the last "."
df1["column"] = df1["column"].astype("float")

【讨论】:

  • 我怎样才能将正则表达式包含在其中,因为这种格式中还有许多其他值?
  • 我编辑了它,所以基本上在应用中我使用了一个 lambda 表达式,在它里面你可以对行做任何你想做的事情。由于它只是一列,因此 x 将是您要对其进行转换的字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
相关资源
最近更新 更多