【发布时间】:2023-03-12 10:48:01
【问题描述】:
我有一个 csv 文件,我必须清理数据。问题是我可以通过 df.fillna() 填充空值,但字符串中有一些连续数字需要转换为 float 或 int 以便进一步计算。 我尝试了几种方法,但找不到解决方案。 请提供帮助,因为我是数据科学领域的新手,可能在提问时犯了一些错误。
此列有一个字符串值:df['hum'][316] = '64.70'
type(df['hum'][316]) = str
我将字符串值存储到一个变量中,然后使用 float(value) 但它给出了错误。
value = df['hum'][316]
>>>' "64.70"'
type(value)
>>> str
float(value)
>>>ValueError: could not convert string to float: ' "64.70"'
ValueError: could not convert string to float: ' "64.70"'
【问题讨论】:
-
它看起来像你的字符串作为前导空格,这是正确的吗?试试
df['hum'].str.lstrip().astype(float) -
感谢您的回复兄弟,我试过了,它给出了一个错误:无法将字符串转换为浮点数:'"64.70"'
-
你好像嵌入了双引号,试试
df['hum'].str.strip().str.replace('"','').astype(float) -
数据集中已经提供了双引号,我可以通过简单的方式修复它,但我希望 python 做到这一点,其次在尝试上面的代码后我得到: ValueError: could not convert string to float :
-
好的,所以现在我们有很多人无法重现您的错误,在这个阶段您需要发布您的实际数据和代码,以便其他人帮助您,而不是浪费时间
标签: python-3.x pandas dataframe type-conversion