I record relativi alle corse dei taxi verdi includono campi contenenti data e ora di partenza e di arrivo, luogo di partenza e di arrivo, distanze delle corse, dettaglio delle tariffe, tipi di tariffa, tipi di pagamento e numero di passeggeri segnalato dal tassista.
Volume e conservazione
Il set di dati è archiviato nel formato Parquet. Sono disponibili in totale circa 80 milioni di righe (2 GB) a oggi (2018).
Questo set di dati include record cronologici accumulati dal 2009 al 2018. Puoi usare le impostazioni dei parametri nell’SDK per recuperare i dati entro un intervallo di tempo specifico.
Posizione di archiviazione
Questo set di dati è archiviato nell’area Stati Uniti orientali di Azure. L’allocazione delle risorse di calcolo nell’area Stati Uniti orientali è consigliata per motivi di affinità.
Informazioni aggiuntive
NYC Taxi and Limousine Commission (TLC):
I dati sono stati raccolti e forniti a NYC Taxi and Limousine Commission (TLC) da fornitori di soluzioni tecnologiche autorizzati in conformità con i programmi Taxicab e Livery Passenger Enhancement Program (TPEP/LPEP). I dati relativi alle corse non sono stati creati da TLC e TLC non rilascia alcuna dichiarazione relativamente alla correttezza di tali dati.
Informazioni aggiuntive sui dati relativi ai record delle corse di TLC sono disponibili qui e qui.
Notifiche
MICROSOFT FORNISCE I SET DI DATI APERTI DI AZURE “COSÌ COME SONO”. MICROSOFT NON OFFRE ALCUNA GARANZIA O CONDIZIONE ESPLICITA O IMPLICITA RELATIVAMENTE ALL’USO DEI SET DI DATI DA PARTE DELL’UTENTE. NELLA MISURA MASSIMA CONSENTITA DALLE LEGGI LOCALI, MICROSOFT NON RICONOSCE ALCUNA RESPONSABILITÀ RELATIVAMENTE A DANNI O PERDITE COMMERCIALI, INCLUSI I DANNI DIRETTI, CONSEQUENZIALI, SPECIALI, INDIRETTI, INCIDENTALI O PUNITIVI DERIVANTI DALL’USO DEI SET DI DATI DA PARTE DELL’UTENTE.
Questo set di dati viene fornito in conformità con le condizioni originali in base alle quali Microsoft ha ricevuto i dati di origine. Il set di dati potrebbe includere dati provenienti da Microsoft.
Access
Available in | When to use |
---|---|
Azure Notebooks | Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine. |
Azure Databricks | Use this when you need the scale of an Azure managed Spark cluster to process the dataset. |
Azure Synapse | Use this when you need the scale of an Azure managed Spark cluster to process the dataset. |
Preview
vendorID | lpepPickupDatetime | lpepDropoffDatetime | passengerCount | tripDistance | puLocationId | doLocationId | rateCodeID | storeAndFwdFlag | paymentType | fareAmount | extra | mtaTax | improvementSurcharge | tipAmount | tollsAmount | totalAmount | tripType | puYear | puMonth |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 6/24/2081 5:40:37 PM | 6/24/2081 6:42:47 PM | 1 | 16.95 | 93 | 117 | 1 | N | 1 | 52 | 1 | 0.5 | 0.3 | 0 | 2.16 | 55.96 | 1 | 2081 | 6 |
2 | 11/28/2030 12:19:29 AM | 11/28/2030 12:25:37 AM | 1 | 1.08 | 42 | 247 | 1 | N | 2 | 6.5 | 0 | 0.5 | 0.3 | 0 | 0 | 7.3 | 1 | 2030 | 11 |
2 | 11/28/2030 12:14:50 AM | 11/28/2030 12:14:54 AM | 1 | 0.03 | 42 | 42 | 5 | N | 2 | 5 | 0 | 0 | 0 | 0 | 0 | 5 | 2 | 2030 | 11 |
2 | 11/14/2020 11:38:07 AM | 11/14/2020 11:42:22 AM | 1 | 0.63 | 129 | 129 | 1 | N | 2 | 4.5 | 1 | 0.5 | 0.3 | 0 | 0 | 6.3 | 1 | 2020 | 11 |
2 | 11/14/2020 9:55:36 AM | 11/14/2020 10:04:54 AM | 1 | 3.8 | 82 | 138 | 1 | N | 2 | 12.5 | 1 | 0.5 | 0.3 | 0 | 0 | 14.3 | 1 | 2020 | 11 |
2 | 8/26/2019 4:18:37 PM | 8/26/2019 4:19:35 PM | 1 | 0 | 264 | 264 | 1 | N | 2 | 1 | 0 | 0.5 | 0.3 | 0 | 0 | 1.8 | 1 | 2019 | 8 |
2 | 7/1/2019 8:28:33 AM | 7/1/2019 8:32:33 AM | 1 | 0.71 | 7 | 7 | 1 | N | 1 | 5 | 0 | 0.5 | 0.3 | 1.74 | 0 | 7.54 | 1 | 2019 | 7 |
2 | 7/1/2019 12:04:53 AM | 7/1/2019 12:21:56 AM | 1 | 2.71 | 223 | 145 | 1 | N | 2 | 13 | 0.5 | 0.5 | 0.3 | 0 | 0 | 14.3 | 1 | 2019 | 7 |
2 | 7/1/2019 12:04:11 AM | 7/1/2019 12:21:15 AM | 1 | 3.14 | 166 | 142 | 1 | N | 2 | 14.5 | 0.5 | 0.5 | 0.3 | 0 | 0 | 18.55 | 1 | 2019 | 7 |
2 | 7/1/2019 12:03:37 AM | 7/1/2019 12:09:27 AM | 1 | 0.78 | 74 | 74 | 1 | N | 1 | 6 | 0.5 | 0.5 | 0.3 | 1.46 | 0 | 8.76 | 1 | 2019 | 7 |
Name | Data type | Unique | Values (sample) | Description |
---|---|---|---|---|
doLocationId | string | 264 | 74 42 |
DOLocationID dell’area taxi TLC in cui è stato attivato il tassametro. |
dropoffLatitude | double | 109,721 | 40.7743034362793 40.77431869506836 |
Deprecato a partire da 2016.07 |
dropoffLongitude | double | 75,502 | -73.95272827148438 -73.95274353027344 |
Deprecato a partire da 2016.07 |
extra | double | 202 | 0.5 1.0 |
Extra e maggiorazioni vari. Include attualmente solo gli addebiti pari a 0,50 USD e 1 USD per l’ora di punta e per la notte. |
fareAmount | double | 10,367 | 6.0 5.5 |
Tariffa in base a durata e distanza calcolata dal tassametro. |
improvementSurcharge | string | 92 | 0.3 0 |
Maggiorazione di $ 0,30 per il miglioramento del servizio aggiunta alla tariffa fissa sulle corse dei taxi chiamati in strada. La maggiorazione per il miglioramento del servizio viene applicata dal 2015. |
lpepDropoffDatetime | timestamp | 58,100,713 | 2016-05-22 00:00:00 2016-05-09 00:00:00 |
Data e ora in cui è stato disattivato il tassametro. |
lpepPickupDatetime | timestamp | 58,157,349 | 2013-10-22 12:40:36 2014-08-09 15:54:25 |
Data e ora in cui è stato attivato il contatore. |
mtaTax | double | 34 | 0.5 -0.5 |
Imposta MTA di $ 0,50 automaticamente attivata in base alla tariffa del tassametro in uso. |
passengerCount | int | 10 | 1 2 |
Numero di passeggeri nel veicolo. Si tratta di un valore immesso dall’autista. |
paymentType | int | 5 | 2 1 |
Codice numerico che indica il modo in cui il passeggero ha pagato la corsa. 1= carta di credito 2= contanti 3= nessun addebito 4= contestazione 5= sconosciuto 6= corsa nulla |
pickupLatitude | double | 95,110 | 40.721351623535156 40.721336364746094 |
Deprecato a partire da 2016.07 |
pickupLongitude | double | 55,722 | -73.84429931640625 -73.84429168701172 |
Deprecato a partire da 2016.07 |
puLocationId | string | 264 | 74 41 |
Valore TLC Taxi Zone in cui è stato attivato il tassametro. |
puMonth | int | 12 | 3 5 |
|
puYear | int | 14 | 2015 2016 |
|
rateCodeID | int | 7 | 1 5 |
Codice di tariffa finale in vigore alla fine della corsa. 1= Tariffa standard 2= JFK 3= Newark 4= Nassau o Westchester 5= Tariffa negoziata 6= Corsa di gruppo |
storeAndFwdFlag | string | 2 | N Y |
Questo flag indica se il record relativo alla corsa è stato conservato nella memoria del veicolo prima dell’invio al fornitore, ovvero con la modalità “archivia e inoltra”, perché il veicolo non era connesso al server. Y= corsa con archiviazione e inoltro N= corsa senza archiviazione e inoltro |
tipAmount | double | 6,206 | 1.0 2.0 |
Importo delle mance: questo campo viene popolato automaticamente per le mance tramite carta di credito. Le mance in contanti non sono incluse. |
tollsAmount | double | 2,150 | 5.54 5.76 |
Importo totale di tutti i pedaggi pagati durante la corsa. |
totalAmount | double | 20,188 | 7.8 6.8 |
Importo totale addebitato ai passeggeri. Non include le mance in contanti. |
tripDistance | double | 7,060 | 0.9 1.0 |
Distanza percorsa durante la corsa in miglia segnalata dal tassametro. |
tripType | int | 3 | 1 2 |
Codice che indica se la corsa ha avuto inizio con una richiesta a bordo strada o una chiamata ufficiale assegnata automaticamente in base alla tariffa del tassametro in uso ma modificabile dal guidatore. 1= richiesta a bordo strada 2= assegnazione ufficiale |
vendorID | int | 2 | 2 1 |
Codice che indica il fornitore LPEP che ha fornito il record. 1= Creative Mobile Technologies, LLC; 2= VeriFone Inc. |
Azure Notebooks
# This is a package in preview.
from azureml.opendatasets import NycTlcGreen
from datetime import datetime
from dateutil import parser
end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcGreen(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_pandas_dataframe()
nyc_tlc_df.info()
# Pip install packages
import os, sys
!{sys.executable} -m pip install azure-storage-blob
!{sys.executable} -m pip install pyarrow
!{sys.executable} -m pip install pandas
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "nyctlc"
folder_name = "green"
from azure.storage.blob import BlockBlobServicefrom azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
if azure_storage_account_name is None or azure_storage_sas_token is None:
raise Exception(
"Provide your specific name and key for your Azure Storage account--see the Prerequisites section earlier.")
print('Looking for the first parquet under the folder ' +
folder_name + ' in container "' + container_name + '"...')
container_url = f"https://{azure_storage_account_name}.blob.core.windows.net/"
blob_service_client = BlobServiceClient(
container_url, azure_storage_sas_token if azure_storage_sas_token else None)
container_client = blob_service_client.get_container_client(container_name)
blobs = container_client.list_blobs(folder_name)
sorted_blobs = sorted(list(blobs), key=lambda e: e.name, reverse=True)
targetBlobName = ''
for blob in sorted_blobs:
if blob.name.startswith(folder_name) and blob.name.endswith('.parquet'):
targetBlobName = blob.name
break
print('Target blob to download: ' + targetBlobName)
_, filename = os.path.split(targetBlobName)
blob_client = container_client.get_blob_client(targetBlobName)
with open(filename, 'wb') as local_file:
blob_client.download_blob().download_to_stream(local_file)
# Read the parquet file into Pandas data frame
import pandas as pd
print('Reading the parquet file into Pandas data frame')
df = pd.read_parquet(filename)
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
Azure Databricks
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
from azureml.opendatasets import NycTlcGreen
from datetime import datetime
from dateutil import parser
end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcGreen(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_spark_dataframe()
display(nyc_tlc_df.limit(5))
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "green"
blob_sas_token = r""
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
blob_sas_token)
print('Remote blob path: ' + wasbs_path)
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))
Azure Synapse
# This is a package in preview.
from azureml.opendatasets import NycTlcGreen
from datetime import datetime
from dateutil import parser
end_date = parser.parse('2018-06-06')
start_date = parser.parse('2018-05-01')
nyc_tlc = NycTlcGreen(start_date=start_date, end_date=end_date)
nyc_tlc_df = nyc_tlc.to_spark_dataframe()
# Display top 5 rows
display(nyc_tlc_df.limit(5))
# Display data statistic information
display(nyc_tlc_df, summary = True)
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "nyctlc"
blob_relative_path = "green"
blob_sas_token = r""
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
blob_sas_token)
print('Remote blob path: ' + wasbs_path)
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))