it-swarm.com.de

Ersetzen Sie die Zeichenfolge / den Wert im gesamten DataFrame

Ich habe einen sehr großen Datensatz, in dem ich Zeichenfolgen durch Zahlen ersetzen möchte. Ich möchte den Datensatz bearbeiten, ohne eine Zuordnungsfunktion für jeden Schlüssel (jede Spalte) im Datensatz einzugeben. (Ähnlich wie die fillna-Methode, ersetzen Sie jedoch eine bestimmte Zeichenfolge durch einen zugeordneten Wert.) Gibt es sowieso das zu tun?

Hier ist ein Beispiel für meinen Datensatz

data
   resp          A          B          C
0     1       poor       poor       good
1     2       good       poor       good
2     3  very good  very good  very good
3     4       bad        poor       bad 
4     5   very bad   very bad   very bad
5     6       poor       good   very bad
6     7       good       good       good
7     8  very good  very good  very good
8     9       bad        bad    very bad
9    10   very bad   very bad   very bad

Das gewünschte Ergebnis:

 data
   resp  A  B  C
0      1  3  3  4
1     2  4  3  4
2     3  5  5  5
3     4  2  3  2
4     5  1  1  1
5     6  3  4  1
6     7  4  4  4
7     8  5  5  5
8     9  2  2  1
9    10  1  1  1

sehr schlecht = 1, schlecht = 2, schlecht = 3, gut = 4, sehr gut = 5

// Jonas

43
jonas

Verwenden Sie ersetzen

In [126]: df.replace(['very bad', 'bad', 'poor', 'good', 'very good'], 
                     [1, 2, 3, 4, 5]) 
Out[126]: 
      resp  A  B  C
   0     1  3  3  4
   1     2  4  3  4
   2     3  5  5  5
   3     4  2  3  2
   4     5  1  1  1
   5     6  3  4  1
   6     7  4  4  4
   7     8  5  5  5
   8     9  2  2  1
   9    10  1  1  1
60
waitingkuo

Unter Berücksichtigung von data ist Ihr pandas DataFrame können Sie auch verwenden:

data.replace({'very bad': 1, 'bad': 2, 'poor': 3, 'good': 4, 'very good': 5}, inplace=True)
6
Jash Shah