Как выбрать и заменить похожие вхождения в столбце - PullRequest
0 голосов
/ 06 февраля 2019

Я работаю над проектом ML для класса.В настоящее время я очищаю данные и столкнулся с проблемой.У меня в основном есть столбец (который идентифицируется как объект dtype), в котором есть оценки определенного аспекта в отеле.Когда я проверил, какими были значения этого столбца и с какой периодичностью они появлялись, я заметил, что в нем есть некоторые неправильные значения (как вы можете видеть ниже, вместо рейтингов в некоторых строках в качестве значения указывается дата)

rating       value_counts()      
100           527
98            229
97            172
99            163
96            150
95            127
93            100
90             94
94             93
80             65
92             55
91             39
88             35
89             32
87             31
85             25
86             17
84             12
60             12
83              8
70              5
73              5
82              4
78              3
67              3
2018-11-11      3
20              2
81              2
2018-11-03      2
40              2
79              2
75              2
2018-10-26      2
2               1
2018-08-30      1
2018-09-03      1
2015-09-05      1
55              1
2018-10-12      1
2018-05-11      1
2018-11-14      1
2018-09-15      1
2018-04-07      1
2018-08-16      1
71              1
2018-09-18      1
2018-11-05      1
2018-02-04      1
NaN             1 

То, что я хотел сделать, это заменить все значения, которые выглядят как даты, на NaN, чтобы позже я мог заполнить их соответствующими значениями.Есть ли хороший способ сделать это, кроме выбора каждой отдельной даты по одной и замены ее NaN?Есть ли способ выбрать похожие значения (в данном случае все даты, начинающиеся одинаково, 2018) и заменить их все?

Спасибо, что нашли время, чтобы прочитать это !!

1 Ответ

0 голосов
/ 06 февраля 2019

Есть несколько вариантов очистки этих данных.

Опция 1: Столбец рейтинга имеет тип объекта, поиск строк по наличию '-' и заменить на np.nan

df.loc[df['rating'].str.contains('-', na = False), 'rating'] = np.nan

Опция 2: преобразовать столбец в числовое значение, что приведетдаты до нан.

df['rating'] = pd.to_numeric(df['rating'], errors = 'coerce')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...