for i in time:
data = change_data(i)
Ну ты перезаписываешь свои данные да и все. То есть в data у тебя остается последний результат вызова функции для последнего i.
Затем ты присваеваешь
benz_df['time'] = data
колонке time, значение data. Он его броадкастит на всю колонку да и все. Ты ожидаешь что data это массив c данными, а это одно значение.
По коду сделай data вне цикла пустым списком и добавляй туда результат вызова своей функции. То есть вот так
data= []
for i in time:
data.append(change_data(i))
Ну а вообще так делать не правильно, все эти операции надо производить средствами pandas
хотя бы как то так.
benz = pd.read_xml(benz_xml_file, xpath='.//filling')
benz_df = pd.DataFrame(benz)
benz_df['time'] = benz_df['time'].apply(change_data)
benz_df['time'][:50]