The pandas documentation includes a note:
Note Unlike list.append method, which appends to the original list and returns nothing, append here does not mod
Why not use concat?
df = pd.concat([df, pd.DataFrame(new_data)])