Как сопоставить строку с целым числом в Python - PullRequest
0 голосов
/ 08 мая 2018

В пандах я хочу отобразить строки в целые числа, но, как ни странно, другой столбец преобразует строки в целые числа, как я хотел, но один столбец преобразует строки в числа с плавающей точкой, а один уровень не преобразуется правильно, и он становится NaN, код:

data2['post'].map({'集体企业人员':0, '在岗职工':1, '农电工':2})
0     0.0
1     0.0
2     0.0
3     1.0
4     1.0
5     1.0
6     1.0
7     0.0
8     0.0
9     0.0
10    NaN
11    1.0
12    1.0
13    1.0
14    NaN
15    1.0
16    0.0
17    0.0
18    NaN
19    1.0
20    NaN
21    1.0
22    1.0
23    1.0
24    1.0
25    1.0
26    1.0
27    1.0
28    0.0

Как с этим справиться?

1 Ответ

0 голосов
/ 08 мая 2018

Проблема в том, что некоторые значения не соответствуют ключам dictionary, поэтому получаем NaN s.

Существует несколько решений:

1.добавить недостающие ключи к dict
2.replace NaN s от scalar fillna(100)


3.use replace вместо map, но получить смешанные значения - числовые со строками
3a.replace NaN sпо исходным значениям fillna(data2['post']) - та же проблема, что и 3.


4.для удаления возможных конечных пробелов добавьте strip как data2['post'].str.strip().map({'集体企业人员':0, '在岗职工':1, '农电工':2})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...