【问题标题】:Python : could not convert string to float:Python:无法将字符串转换为浮点数:
【发布时间】:2020-04-09 08:53:47
【问题描述】:

当我运行下面的代码时,我收到一条错误消息“ValueError: could not convert string to float:”。我已经梳理了我的 1.CSV 文件,看看如果我删除了这些列,列中是否有字符串类型的数据。我的问题是我在这个问题中遗漏了什么?

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('1.csv', skiprows=2, delimiter=',')
time = data[:, 6]
HTR1_Volts = data[:, 24]
HTR2_Volts = data[:, 25]

plt.plot(time, HTR1_Volts, color='red', label="HTR1_Volts")
plt.plot(time, HTR2_Volts, color='blue', label="HTR2_Volts")
plt.ylabel("CO2 (ppm)")
plt.xlabel("Time (sec)")
plt.title('Interesting Graph\nCheck it out')
plt.grid(color='black', linestyle='-', linewidth=0.5)
legend_x = 1
legend_y = 0.5
plt.legend(["HTR1_Volts", "HTR2_Volts"], loc='center left', bbox_to_anchor=(legend_x, legend_y))

plt.savefig('PLOT1.PNG', dpi=600, bbox_inches="tight")

plt.show()

【问题讨论】:

  • 您在其中一行中有一个空列。确保没有任何空行。
  • 注意错误是报告一个empty字符串。
  • 请记住,CSV 只能存储文本。电子表格程序在导入 CSV 时,可能会尝试根据字符串的外观对数字转换进行一些智能猜测。但在文件中,一切都只是字节,CSV 格式并没有真正规定对它们的任何特定解释,除了将数据视为文本并解释换行符、逗号和引号来确定行和列。
  • 请提供minimal reproducible example,以及完整的错误信息。
  • AMC :如果我可以附上 1.CSV 文件,我希望我可以,但不幸的是我没有,所以我无能为力。

标签: python numpy


【解决方案1】:

当您使用文字逗号作为分隔符时,您的数据很有可能在某处被弄乱并被转移。如果是这样,另一个领域现在正在你的路上。

检查是否所有浮点值都由点分隔。 检查所有其他字段中是否有逗号。如果是这样,请转义或删除逗号。

不过,在 csv 文件中使用分号作为分隔符是一种很好的做法。

【讨论】:

  • 是的,我的 CVS 文件中有空列,我删除了这些并从下面删除了所有空白行,现在它可以工作了,谢谢 :)
  • 不过,在 csv 文件中使用分号作为分隔符是一种很好的做法。 更好的解决方案是格式化数据以完全避免该问题,并用引号将值括起来如有必要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-11
  • 2018-04-23
  • 2020-11-19
  • 2015-03-25
  • 2021-12-23
  • 2017-08-12
  • 1970-01-01
相关资源
最近更新 更多