Это потому, что диалект csv.excel не знает языковой стандарт. Если вы хотите явно использовать точки с запятой в качестве разделителя, вам нужно либо явно передать разделитель в csv.open как
writer = csv.writer(open("data.csv", "wb"), delimiter=";")
или создайте новый диалект и зарегистрируйте его
class excel_semicolon(csv.excel):
delimiter = ';'
register_dialect("excel-semicolon", excel_semicolon)
В любом случае, вы должны проверить, как пишутся числа с плавающей запятой ... Я подозреваю, что они не будут записаны в желаемом вами европейском формате (с запятой в качестве радиуса)