簡體   English   中英

Python:ValueError:無法將字符串轉換為float:'D'

[英]Python: ValueError: could not convert string to float: 'D'

我正在加載train.csv文件以使其適合RandomForestClassifier。 .csv文件的加載和處理很好。我可以使用我的數據幀。

當我嘗試:

from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=150, min_samples_split=2, n_jobs=-1)
rf.fit(train, target)

我明白了:

ValueError: could not convert string to float: 'D'

我試過了:

train=train.astype(float)

用另一個值替換所有'D'。

train.convert_objects(convert_numeric=True)

但問題仍然存在。

我也嘗試在我的csv文件中打印所有valueErrors,但找不到對'D'的引用。

這是我的追蹤:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-20-9d8e309c06b6> in <module>()
----> 1 rf.fit(train, target)

\Anaconda3\lib\site-packages\sklearn\ensemble\forest.py in fit(self, X, y, sample_weight)
    222 
    223         # Convert data
--> 224         X, = check_arrays(X, dtype=DTYPE, sparse_format="dense")
    225 
    226         # Remap output

\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_arrays(*arrays, **options)
    279                     array = np.ascontiguousarray(array, dtype=dtype)
    280                 else:
--> 281                     array = np.asarray(array, dtype=dtype)
    282                 if not allow_nans:
    283                     _assert_all_finite(array)

\Anaconda3\lib\site-packages\numpy\core\numeric.py in asarray(a, dtype, order)
    460 
    461     """
--> 462     return array(a, dtype, copy=False, order=order)
    463 
    464 def asanyarray(a, dtype=None, order=None):

ValueError: could not convert string to float: 'D'

我該如何處理這個問題?

如果沒有RandomForestClassifier(就我所知)python庫(包含在python中),很難知道你的情況是怎么回事。 然而,真正發生的是,在某些時候,你正在嘗試將字符串'D'轉換為浮點數。 我可以通過執行以下操作重現您的錯誤:

float('D')

現在,為了能夠調試此問題,我建議您捕獲異常:

try:
  rf.fit(train, target)
except ValueError as e:
  print(e)
  #do something clever with train and target like pprint them or something.

然后你可以看看到底發生了什么。 我找不到那個隨機森林分類器,除了這可能有幫助: https//www.npmjs.com/package/random-forest-classifier

您應該探索並清理數據。 可能你的數據中有一個'D'代碼試圖轉換為浮點數。 “try-except”塊中的跟蹤是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM