TypeError: bad operand type for unary ~: float
PythonPandasPython Problem Overview
df = df[~df["column"].str.contains("Total")]
TypeError: bad operand type for unary ~: 'float'
Why does .str.contains()
return a float? What should I be doing here?
Python Solutions
Solution 1 - Python
I think there are NaN
s values, so need specify parameter na
:
df = pd.DataFrame({
'column': ['Total','a',np.nan],
'B': list(range(3))
})
print (df)
column B
0 Total 0
1 a 1
2 NaN 2
df = df[~df["column"].str.contains("Total", na=False)]
print (df)
column B
1 a 1
2 NaN 2
Solution 2 - Python
In this type, we will see that we have some column values that are nan or empty so we were not able to do this. Hence, when you applied the code as here given below it, will work.
df_pcc_mod = df_pcc_mod[~df_pcc_mod['Invoice'].str.contains('Reversed',na=False)]