web-dev-qa-db-ja.com

データフレーム全体の文字列/値を置き換えます

文字列を数字に置き換えたい場合、非常に大きなデータセットがあります。データセットの各キー(列)にマッピング関数を入力せずに、データセットを操作したいと思います。 (fillnaメソッドに似ていますが、特定の文字列を関連付けられた値に置き換えます)。とにかくこれを行うにはありますか?

これが私のデータセットの例です

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

望ましい結果:

 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

非常に悪い= 1、悪い= 2、悪い= 3、良い= 4、非常に良い= 5

//ジョナス

43
jonas

replace を使用します

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

dataがあなたのpandas DataFrame以下も使用できます。

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