I have this dataframe
data = [['Tom', 16, 'True','False'], ['Nick', 19, 'False','True'], ['Juli', 17, 'True','True']]
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Writer','Artist'])
I want to convert the string booleans to booleans.
I have tried
def str_to_bool(s):
if s == 'True':
return True
elif s == 'False':
return False
else:
raise ValueError
df[['Writer','Artist']] = df[['Writer','Artist']].apply(str_to_bool)
and
import ast
df[['Writer','Artist']] = df['Writer','Artist'].map(ast.literal_eval)
but neither of these worked.
Is it possible to do convert the type of multiple columns in a single line or do I have to convert the relevant columns one at a time?