У меня есть этот фрейм данных, и я хочу заменить любую ячейку, содержащую буквенный символ, пустым значением.
df = pd.DataFrame(dict(A = pd.Series(['AB5 La2','-1','8577Y--00']), B = pd.Series(['2\nDate','-45.00','-'])))
df.replace(['.*[a-zA-Z].*'], [''], regex=True , inplace=True)
df
похоже, он не заменяет всю ячейку
Все, что я хочу, это заменить всю ячейку пустым значением, когда она содержит буквенный символ
Я ценю любую помощь, спасибо






\s
Matches any whitespace character; this is equivalent to the class [ \t\n\r\f\v].
https://docs.python.org/3/howto/regex.html
In [44]: df = pd.DataFrame(dict(A = pd.Series(['AB5 La2','-1','8577Y--00']), B = pd.Series(['2\nDate','-45.00','-'])))
...:
...: df.replace(['.*(\s)?[a-zA-Z].*'], [''], regex=True , inplace=True)
In [45]: df
Out[45]:
A B
0
1 -1 -45.00
2 -
.по умолчанию не соответствует новой строке. Используйте встроенный модификаторsDOTALL,(?s).*[a-zA-Z].*. НО гораздо лучшее регулярное выражение(?s)[^a-zA-Z]*[a-zA-Z].*