It's a problem with the datatypes. When you create a dataframe without specifying any data, it automatically assigns datatype object to all columns.
object
Create your dataframe like this:
df = pd.DataFrame(columns=('A', 'B', 'C'), index=range(5), data=0)