Удалить значения строки, содержащие нечисловые значения, в кадре данных pandas

У меня есть фрейм данных, и я хочу удалить строки, содержащие нечисловые значения, а также преобразовать float в int

# Dataframe
productid
7819210
9600146.0
031351AA2
3255214
0018392MM
1785506
6924986
1915444
6007828.0

# cuurent approach
df.productid = df[df.productid.apply(lambda x: str(x).isnumeric())].astype(int) # It also remove floating point values because they contain decimal which is non-numeric 

Я также сделал метод, который делает это

def filternumeric(x):
    if (re.search('\d+', str(x))): pass
    else: return x

df.productid = df[df.productid.apply(filternumeric)].astype(int)

Но тоже работает не корректно. Любые лучшие предложения?


person muazfaiz    schedule 05.08.2017    source источник
comment
Он содержит df.applymap, который, я думаю, работает со всем фреймворком данных, но я хочу работать только с одним столбцом.   -  person muazfaiz    schedule 05.08.2017
comment
См. также связанные ответы по этой ссылке. На этот вопрос здесь неоднократно отвечали.   -  person Zero    schedule 05.08.2017
comment
Попробуйте df[pd.to_numeric(df.productid, errors='coerce').notnull()]   -  person cs95    schedule 05.08.2017
comment
И stackoverflow.com/q/33961028   -  person Zero    schedule 05.08.2017