Hapus nilai baris yang berisi nilai non-numerik dalam kerangka data pandas [duplikat]

Saya memiliki kerangka data dan saya ingin menghapus baris yang berisi nilai non-numerik dan juga mengonversi float ke 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 

Saya juga membuat metode yang melakukan hal ini

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

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

Tapi itu juga tidak berfungsi dengan benar. Ada saran yang lebih baik?


person muazfaiz    schedule 05.08.2017    source sumber
comment
Ini berisi df.applymap yang menurut saya berfungsi di seluruh kerangka data tetapi saya hanya ingin bekerja dengan satu kolom   -  person muazfaiz    schedule 05.08.2017
comment
Silakan lihat jawaban tertaut di tautan itu juga. Pertanyaan ini telah dijawab berkali-kali di sini.   -  person Zero    schedule 05.08.2017
comment
Coba df[pd.to_numeric(df.productid, errors='coerce').notnull()]   -  person cs95    schedule 05.08.2017
comment
Dan, stackoverflow.com/q/33961028   -  person Zero    schedule 05.08.2017