替换整个DataFrame中的字符串/值

时间:2013-06-17 07:23:17

标签: python replace dataframe pandas

我有一个非常大的数据集,我想用数字替换字符串。我想对数据集进行操作,而不为数据集中的每个键(列)键入映射函数。 (类似于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

//纳斯

3 个答案:

答案 0 :(得分:58)

使用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

答案 1 :(得分:6)

考虑if l + len(data) > cap(slice)是您的data,您也可以使用:

pandas DataFrame

答案 2 :(得分:1)

data = data.replace(['very bad', 'bad', 'poor', 'good', 'very good'], [1, 2, 3, 4, 5])

您必须说明应将结果保存在何处。如果仅说 data.replace(...) ,则它仅显示为预览中的更改,而不显示为可环境本身。