2017-06-01 44 views
0

CSV文件,當我跑我的Python代碼我得到這個錯誤:錯誤在Python

df = pd.DataFrame(desm) 
scaler = StandardScaler() 
scaler.fit(df) 


ValueError        Traceback (most recent call last) 
<ipython-input-32-266a989a8af0> in <module>() 
     1 scaler = StandardScaler() 
----> 2 scaler.fit(df) 

C:\Users\VILLAFAÑE\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py in fit(self, X, y) 
    555   # Reset internal state before fitting 
    556   self._reset() 
--> 557   return self.partial_fit(X, y) 
    558 
    559  def partial_fit(self, X, y=None): 

C:\Users\VILLAFAÑE\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py in partial_fit(self, X, y) 
    578   X = check_array(X, accept_sparse=('csr', 'csc'), copy=self.copy, 
    579       ensure_2d=False, warn_on_dtype=True, 
--> 580       estimator=self, dtype=FLOAT_DTYPES) 
    581 
    582   if X.ndim == 1: 

C:\Users\VILLAFAÑE\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator) 
    371          force_all_finite) 
    372  else: 
--> 373   array = np.array(array, dtype=dtype, order=order, copy=copy) 
    374 
    375   if ensure_2d: 

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

我的Python代碼是:

import pandas as pd 
desm = pd.read_csv("G:/BASES DE DATOS/desm4.csv") 

我知道那是什麼用的csv格式,但我不知道如何解決它。 請幫忙! 這裏是鏈接到csv文件,以獲取更多信息

https://drive.google.com/file/d/0B7tO-O0lx79FSnR0cVA3MDhrTG8/view?usp=sharing

回答

0

你的問題的出現是因爲默認read_csv()方法採用指數爲無,這意味着它假定爲可以被讀入索引的第一列其文檔here

index_col : int or sequence or False, default None 

Column to use as the row labels of the DataFrame. 
If a sequence is given, a MultiIndex is used. 
If you have a malformed file with delimiters at the end of each line, 
you might consider index_col=False to force pandas to _not_ use the first 
column as the index (row names) 

因此,請嘗試使用此

import pandas as pd 
desm = pd.read_csv("G:/BASES DE DATOS/desm4.csv",index_col = False) 

我希望它的作品。如果有任何問題,請告訴我。 快樂編碼。乾杯!

1

您正在嘗試縮放第一列是字符串而不是浮動的數據集。

您需要讀取數據框如下:

import pandas as pd 
from sklearn.preprocessing import StandardScaler 
df = pd.read_csv('desm4.csv',index_col=0) 
scaler = StandardScaler() 
scaler.fit(df) 

試試上面的代碼,讓我知道,如果你面對任何問題。上面的代碼使用站點列並將其用作索引(每行的行ID),標準縮放器不會應用於索引,因此您不會收到錯誤。

而且,你不必做

df = pd.DataFrame(desm) 

pd.read_csv讀取CSV並返回一個數據幀