Konvertieren Sie mehrere Spalten eines pandas-Daten-frame zu dummy-Variablen - Python

Habe ich in diesem dataframe:

Konvertieren Sie mehrere Spalten eines pandas-Daten-frame zu dummy-Variablen - Python

Soweit ich weiß, verwenden die scikit lernen-Paket in Python für die Maschine gelehnt Aufgaben, die kategoriale Variablen umgewandelt werden soll, um dummy-Variablen. Also, zum Beispiel mit einer Bibliothek scikit lernen ich versuchen, konvertieren Sie die Werte der Dritten Spalte, um dummy-Werte, aber mein code hat nicht funktioniert:

from sklearn.preprocessing import LabelEncoder

x[:, 2] = LabelEncoder().fit_transform(x[:,2])

Also, was ist Los mit meinem code? und Wie Kann ich umwandeln alle kategorialen Variablen um dummy-Variablen in meinen Daten-frame?

Edit: Der komplette traceback ist diese :

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-73-c0d726db979e> in <module>()
      1 from sklearn.preprocessing import LabelEncoder
      2 
----> 3 x[:, 2] = LabelEncoder().fit_transform(x[:,2])

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\frame.pyc in __getitem__(self, key)
   2001             # get column
   2002             if self.columns.is_unique:
-> 2003                 return self._get_item_cache(key)
   2004 
   2005             # duplicate columns

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\generic.pyc in _get_item_cache(self, item)
    665             return cache[item]
    666         except Exception:
--> 667             values = self._data.get(item)
    668             res = self._box_item_values(item, values)
    669             cache[item] = res

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\internals.pyc in get(self, item)
   1653     def get(self, item):
   1654         if self.items.is_unique:
-> 1655             _, block = self._find_block(item)
   1656             return block.get(item)
   1657         else:

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\internals.pyc in _find_block(self, item)
   1933 
   1934     def _find_block(self, item):
-> 1935         self._check_have(item)
   1936         for i, block in enumerate(self.blocks):
   1937             if item in block:

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\internals.pyc in _check_have(self, item)
   1939 
   1940     def _check_have(self, item):
-> 1941         if item not in self.items:
   1942             raise KeyError('no item named %s' % com.pprint_thing(item))
   1943 

C:\Users\toshiba\Anaconda\lib\site-packages\pandas\core\index.pyc in __contains__(self, key)
    317 
    318     def __contains__(self, key):
--> 319         hash(key)
    320         # work around some kind of odd cython bug
    321         try:

TypeError: unhashable type
  • Sie sollten den vollständigen traceback-statt nur zu sagen "es hat nicht funktioniert". Ich vermute, das problem ist, dass das bilden von dummy-Variablen Ergebnisse in mehreren Spalten (eine für jeden eindeutigen Wert in der Spalte "original"), so kann man nicht zuordnen, zurück zu der ursprünglichen Spalte. Sie werden wahrscheinlich wollen, um einen neuen DataFrame mit Ihrem dummy-Spalten.
  • In pandas Frage, ist es meist besser, wenn Sie Kopie-pastable version Ihrer DataFrame. Ich bevorzuge normalerweise die Ausgabe von df.to_dict
InformationsquelleAutor CreamStat | 2014-09-29
Schreibe einen Kommentar