里头奇奇 2019-08-01 05:46 采纳率: 0%
浏览 2205

使用了replace()函数,结果却没有变化?

我想把一个字符串'6,105.00'中的','去掉,方便后面转化为浮点数,

但是使用了.replace(',', '')后并没有效果,系统还是报错?求解原因,谢谢!

代码:

import pandas as pd
import sys

# input_file = sys.argv[1]
# output_file = sys.argv[2]
input_file = input()
output_file = input()

data_frame = pd.read_csv(input_file)

data_frame['Cost'] = data_frame['Cost'].str.strip('$').replace(',', '').astype(float)
data_frame_value_meets_condition = data_frame.loc[(data_frame['Supplier Name'].str.contains('Z')) | (data_frame['Cost'] > 600.0), :]

报错:

return arr.astype(dtype, copy=True)

ValueError: could not convert string to float: '6,015.00 '

  • 写回答

2条回答 默认 最新

  • ygcltqq 2019-08-01 06:20
    关注

    replace 是字符串函数,结果也是字符串
    astype好像是不同数据类型的转换,比如int 转float
    直接用float('6105.00')应该就可以了

    评论
  • 里头奇奇 2019-08-02 02:32
    关注

    已找到解决方法:分成两行代码完成转换

    原:

    data_frame['Cost'] = data_frame['Cost'].str.strip('$').replace(',', '').astype(float)
    
    

    换成:

    data_frame['Cost'] = data_frame['Cost'].str.strip('$')
    data_frame['Cost'] = data_frame['Cost'].str.replace(',', '').astype(float)
    

    即可

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部