I have a dataframe, that has a column 'A1' that contains strings, postive as well as negative integers. I want to replace the all integers >= 0 with True and everyting else with false (strings, neg. int, etc.)
My DataFrame looks like this:
| index | A1 |
|---|---|
| 0 | 1 |
| 1 | Hello |
| 2 | -8 |
| 3 | Hello |
and shall look like this:
| index | A1 |
|---|---|
| 0 | True |
| 1 | False |
| 2 | False |
| 3 | False |
I tried it this way, but then I drop all other columns:
df= pd.DataFrame(pd.to_numeric(df['A1'], errors="coerce").agg(lambda x: x.ge(0)))
How can I do this so the rest of the DataFrame is kept?
CodePudding user response:
Use:
df = df.assign(A1 = pd.to_numeric(df['A1'], errors="coerce").ge(0))
Or:
df['A1'] = pd.to_numeric(df['A1'], errors="coerce").ge(0)
