ValueError: could not convert string to float: '62,6'
ValueError: could not convert string to float: '62,6'
我正在尝试将数据帧转换为 numpy 数组:
dataset = myset.values
X = np.array(dataset[0:,6:68], dtype="float32")
X[0:5,0:]
Here is a piece of the data
这是一个错误:
-----------------------------------------------------------------------
----
ValueError Traceback (most recent call last)
<ipython-input-162-4b67608047d1> in <module>()
1 dataset = myset.values
----> 2 X = np.array(dataset[0:,6:68], dtype="float32")
3 X[0:5,0:]
ValueError: could not convert string to float: '62,6'
哪里有问题?
在Python(或者基本上今天使用的任何编程语言)中,点(.
)用于小数点,而不是逗号(,
),所以你应该用您正在处理的字符串中的点替换逗号。
尝试使用 replace
,
到 .
:
dataset = myset.replace(',','.', regex=True).values
或使用 read_csv
中的参数 decimal
将 ,
转换为浮点数中的 .
:
dataset = pd.read_csv('file', decimal=',')
有使用“.”的语言环境作为小数点分隔符和 ',' 作为千位分隔符。
还有一些语言环境使用“,”作为小数点分隔符和“。”作为千位分隔符。
进行简单的字符串替换会给您带来各种麻烦。你需要
import locale
然后指定您要使用的语言环境,例如
locale.setlocale(locale.LC_NUMERIC, 'german')
然后您可以使用
解析字符串
locale.atof('1.337,3')
我正在尝试将数据帧转换为 numpy 数组:
dataset = myset.values
X = np.array(dataset[0:,6:68], dtype="float32")
X[0:5,0:]
Here is a piece of the data
这是一个错误:
-----------------------------------------------------------------------
----
ValueError Traceback (most recent call last)
<ipython-input-162-4b67608047d1> in <module>()
1 dataset = myset.values
----> 2 X = np.array(dataset[0:,6:68], dtype="float32")
3 X[0:5,0:]
ValueError: could not convert string to float: '62,6'
哪里有问题?
在Python(或者基本上今天使用的任何编程语言)中,点(.
)用于小数点,而不是逗号(,
),所以你应该用您正在处理的字符串中的点替换逗号。
尝试使用 replace
,
到 .
:
dataset = myset.replace(',','.', regex=True).values
或使用 read_csv
中的参数 decimal
将 ,
转换为浮点数中的 .
:
dataset = pd.read_csv('file', decimal=',')
有使用“.”的语言环境作为小数点分隔符和 ',' 作为千位分隔符。 还有一些语言环境使用“,”作为小数点分隔符和“。”作为千位分隔符。
进行简单的字符串替换会给您带来各种麻烦。你需要
import locale
然后指定您要使用的语言环境,例如
locale.setlocale(locale.LC_NUMERIC, 'german')
然后您可以使用
解析字符串locale.atof('1.337,3')