Let us say we have the following dataframe
df[‘Amount $’]
| 0.07 |
| 1.154 |
| 2.596 |
| X-Links |
| Amount $ |
| 0.102 |
And we want to convert all numbers to float and drop the non-numeric rows. isnumeric() will not work since this data is all str dtype. The only option is to write a small function which tries to convert a string to a float. If it fails it returns FALSE. If this function is mapped to the entire column using a lambda function then it will return a boolean list(series) where TRUE means float and FALSE means non-float. When this is used as a boolean mask on the dataframe, it will filter out the non-numeric rows.
def tryfloat(self, f): try: float(f) return True except ValueError: return False df[ df['Amount $'].apply(lambda x: tryfloat(x)) ]
Result is this table
| 0.07 |
| 1.154 |
| 2.596 |
| 0.102 |