我有一个非常大的数据集,我想用数字替换字符串。我想对数据集进行操作,而不为数据集中的每个键(列)键入映射函数。 (类似于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
//纳斯
答案 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(...) ,则它仅显示为预览中的更改,而不显示为可环境本身。