Удаление Dash / Dots в строковом столбце в пандах и замена его на Null - PullRequest
0 голосов
/ 07 июня 2018

У меня есть ниже кадр данных.В котором столбец «col1» представляет собой строковый столбец, состоящий из текста, специальных символов, тире, точек и дат.

Я хотел бы заменить все записи в col1, которые только содержат тире и / или точки.Их следует заменить словом null.Обратите внимание, что даты в col1 также содержат тире или точки.Эти я не хочу заменять.

** Ввод: **

col1 

----
-
---
02-05-2018 meet with bm sir and service manager 
02-05-2018 meet with xyz sir for HA 
02-05-2018 meet with pqr sir for PAI 
04-12-2107
-
.
...
03.08.2018

Желаемый вывод:

Col1

null
null
null
02-05-2018 meet with bm sir and service manager 
02-05-2018 meet with xyz sir for HA 
02-05-2018 meet with pqr sir for PAI 
04-12-2107
null
null
null
03.08.2018

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Используйте mask и contains с регулярным выражением:

df.mask(df.col1.str.contains(r'^[\.|\-]'))

Вывод:

                                              col1
0                                              NaN
1                                              NaN
2                                              NaN
3  02-05-2018 meet with bm sir and service manager
4              02-05-2018 meet with xyz sir for HA
5             02-05-2018 meet with pqr sir for PAI
6                                       04-12-2107
7                                              NaN
8                                              NaN
9                                              NaN

Обновление с дополнительным столбцом для отображения изменений.

df['col11'] = df.mask(df.col1.str.contains(r'^[\.|\-]'))

print(df)

Вывод:

                                               col1                                            col11
0                                              ----                                              NaN
1                                                 -                                              NaN
2                                               ---                                              NaN
3   02-05-2018 meet with bm sir and service manager  02-05-2018 meet with bm sir and service manager
4               02-05-2018 meet with xyz sir for HA              02-05-2018 meet with xyz sir for HA
5              02-05-2018 meet with pqr sir for PAI             02-05-2018 meet with pqr sir for PAI
6                                        04-12-2107                                       04-12-2107
7                                                 -                                              NaN
8                                                 .                                              NaN
9                                               ...                                              NaN
10                                       03.08.2018                                       03.08.2018
0 голосов
/ 07 июня 2018

Используйте /^[-.]+$/gm для сопоставления только со строками, содержащими.или -

, если вы хотите сохранить строки, которые содержат только смесь точек и тире, которые вы можете использовать /^([-.])\1*$/gm

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