Ответ 1
Существует множество опций для read_csv, которые будут обрабатывать все упомянутые вами случаи. Возможно, вы захотите попробовать dtype = {'A': datetime.datetime}, но часто вам не нужны dtypes, поскольку pandas может вывести типы. Но если у вас есть даты, вам нужно указать параметры parse_date.
parse_dates : boolean, list of ints or names, list of lists, or dict
keep_date_col : boolean, default False
date_parser : function
В общем случае для преобразования логических значений вам необходимо указать:
true_values : list Values to consider as True
false_values : list Values to consider as False
Что преобразует любое значение в список в логическое значение true/false. Для более общих преобразований вам, скорее всего, понадобится
Преобразователи: dict. необязательный Dict функций для преобразования значений в определенные столбцы. Ключи могут быть целыми или столбцами
Хотя и плотный, здесь полный список: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html