Я использовал очень простую функцию для синхронизации части выполнения кода:
import time
def timing():
start_time = time.time()
return lambda x: print("[{:.2f}s] {}".format(time.time() - start_time, x))
И чтобы использовать его, просто вызовите его перед измеряемым кодом для получения функции синхронизации, затем вызовите функцию после кода с комментариями, и перед комментариями появится время, например:
t = timing()
train = pd.read_csv('train.csv',
dtype={
'id': str,
'vendor_id': str,
'pickup_datetime': str,
'dropoff_datetime': str,
'passenger_count': int,
'pickup_longitude': np.float64,
'pickup_latitude': np.float64,
'dropoff_longitude': np.float64,
'dropoff_latitude': np.float64,
'store_and_fwd_flag': str,
'trip_duration': int,
},
parse_dates = ['pickup_datetime', 'dropoff_datetime'],
)
t("Loaded {} rows data from 'train'".format(len(train)))
Тогда результат будет выглядеть так:
[9.35s] Loaded 1458644 rows data from 'train'
Я чувствую себя немного элегантно.