Python - заменить шаблон вхождений во фрейме данных - PullRequest
0 голосов
/ 22 мая 2018

У меня есть фрейм данных со столбцом ('A') в виде:

A
E19
V17
23.12
23.4
23
42
48

вот так, существует более 100 000 записей.

Я хочу заменить все вхожденияначиная с E и V с числами типа 300 и заменяя числа (23.4,23.12,...) на 23.

Код, который я использую:

def clean(x):

 x = sub( r'[E|V](\d+)', r'\g<1>3000', x )

 return sub( r'[^\d]', '' , x ) 

df.A.map(clean).astype(float).astype(int)

Но я получаю ошибку ..

TypeError: expected string or bytes-like object

Пожалуйста, помогите!

Ответы [ 2 ]

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

Используя startwith

df.A.str.startswith(('E','V')).map({True:300,False:23})
Out[329]: 
0    300
1    300
2     23
3     23
4     23
5     23
6     23
Name: A, dtype: int64
0 голосов
/ 22 мая 2018
  1. to_numeric для преобразования нечислового типа в NaN
  2. dropna для сброса NaN
  3. astype для преобразования типа

    pd.to_numeric(df['A'], errors='coerce').dropna().astype(int)

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