My current code:
data={'test':['Karan','13333333','5666666','Aryan', 44444,55555]}
df=pd.DataFrame(data)
for i in df["test"]:
print(i, type(i))
My current output:
Karan <class 'str'>
13333333 <class 'str'>
5666666 <class 'str'>
Aryan <class 'str'>
44444 <class 'int'>
55555 <class 'int'>
My expected output:
Karan <class 'str'>
13333333 <class 'int'>
5666666 <class 'int'>
Aryan <class 'str'>
44444 <class 'int'>
55555 <class 'int'>
If possible, I wish to know more different advanced ways like using python style or pandas way in one line or two.
Try this:
import pandas as pd
data={'test':['Karan','13333333','5666666','Aryan', 44444,55555]}
df=pd.DataFrame(data)
df["test2"] = df["test"].apply(lambda x: int(x) if str(x).isdigit() else x)
for i in df["test2"]:
print(i, type(i))
# Karan <class 'str'>
# 13333333 <class 'int'>
# 5666666 <class 'int'>
# Aryan <class 'str'>
# 44444 <class 'int'>
# 55555 <class 'int'>