поиск и замена строк с номерами только внутри кадра данных pandas - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь заменить строки, содержащие числа, другой строкой (в данном случае пустой) в панде DataFrame.

Я пытался использовать метод .replace и выражение регулярного выражения:

# creating dummy dataframe
data = pd.DataFrame({'A': ['test' for _ in range(5)]})

# the value that should get replaced with ''
data.iloc[0] = 'test5' 

data.replace(regex=r'\d', value='', inplace=True)

print(data)

      A
0  test
1  test
2  test
3  test
4  test

Как вы можете видеть, он заменяет только 5 в строке, а не всю строку.

Я также пытался использовать метод .where, но он мне не подходитнужно, так как я не хочу заменять любые строки, не содержащие чисел

, вот как это должно выглядеть:

      A
0  
1  test
2  test
3  test
4  test

1 Ответ

0 голосов
/ 29 января 2019

Вы можете использовать логическое индексирование через pd.Series.str.contains с loc:

data.loc[data['A'].str.contains(r'\d'), 'A'] = ''

Аналогично с maskили np.where:

data['A'] = data['A'].mask(data['A'].str.contains(r'\d'), '')
data['A'] = np.where(data['A'].str.contains(r'\d'), '', data['A'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...