ValueError:could not convert string to float:“

解释:

这个错误提示表明你的代码中某个地方把一个字符串类型的数据尝试转换为了浮点数类型,并且转换失败了。这种错误通常发生在代码中尝试对数据类型进行转换时,但数据类型无法直接被转换为需要的类型,比如字符串类型的数据无法直接被转换成浮点数类型。

具体来说,你需要检查代码中所有尝试将字符串类型转换为浮点数类型的地方,确保这些字符串类型的数据都是合法可转换的,或者添加必要的具体容错机制,防止意外的数据类型推断或转换出现错误。

例如,如果你读取了一份 CSV 文件,将数据读入DataFrame后,出现了类似"This is an invalid value"这样的字符串,你需要先将其转换成 NaN 或 Null 这样的数据类型,再进行其他类型的转换。通过这种方式,你可以规避由于代码尝试将非数字字符串转换成数字类型而导致的错误。

所以我们可以用python来检查哪地方出错。

因为我出错的地方是合并Excel文件时产生的错误,因为文件中有空单元格或者非法单元格。

所以代码来检查,

如下

# 查找空白单元格
blank_cells = df[df == '']

# 查找包含无效字符串的单元格
filter = df.applymap(lambda x: len(str(x)) <= 4 and not str(x).isdigit())
invalid_cells = df[filter]

# 打印结果
print("--空白单元格位置--")
print(blank_cells)

print("--无效字符串位置--")
print(invalid_cells)

"""
import csv


def find_blank_or_invalid_cells(file_path):
    blank_cells = []
    invalid_cells = []

    with open(file_path, 'r', newline='', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        for index, row in enumerate(reader):
            for column, cell in enumerate(row):
                if cell.strip() == '':
                    blank_cells.append((index, column))
                elif not cell.replace('.', '').isdigit():
                    invalid_cells.append((index, column))

    return blank_cells, invalid_cells


# 给定csv文件路径
file_path = 'F:\pythonProject1\DCN-master\data\ES_dRNN_weather.csv'

# 查找空白单元格和无效字符串单元格
blank_cells, invalid_cells = find_blank_or_invalid_cells(file_path)

# 打印结果
print("空白单元格位置:", blank_cells)
print("无效字符串位置:", invalid_cells)

输出结果如下:

我们可以看到空白单元格的位置,打开Excel文件进行锁定改正即可 

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值