Gegevens verkennen in Azure Blob Storage pandas

In dit artikel wordt beschreven hoe u gegevens verkent die zijn opgeslagen in een Azure Blob-container met behulp van een Pandas Python-pakket.

Deze taak is een stap in Team Data Science Process.

Vereisten

In dit artikel wordt ervan uitgenomen dat u het volgende hebt:

De gegevens laden in een Pandas DataFrame

Als u een gegevensset wilt verkennen en bewerken, moet deze eerst worden gedownload van de blobbron naar een lokaal bestand, dat vervolgens kan worden geladen in een Pandas DataFrame. Hier volgen de stappen voor deze procedure:

  1. Download de gegevens van Azure Blob met het volgende Python-codevoorbeeld met behulp Blob service. Vervang de variabele in de volgende code door uw specifieke waarden:

    from azure.storage.blob import BlobServiceClient
    import pandas as pd
    
    STORAGEACCOUNTURL= <storage_account_url>
    STORAGEACCOUNTKEY= <storage_account_key>
    LOCALFILENAME= <local_file_name>
    CONTAINERNAME= <container_name>
    BLOBNAME= <blob_name>
    
    #download from blob
    t1=time.time()
    blob_service_client_instance = BlobServiceClient(account_url=STORAGEACCOUNTURL, credential=STORAGEACCOUNTKEY)
    blob_client_instance = blob_service_client.get_blob_client(CONTAINERNAME, BLOBNAME, snapshot=None)
    with open(LOCALFILENAME, "wb") as my_blob:
        blob_data = blob_client_instance.download_blob()
        blob_data.readinto(my_blob)
    t2=time.time()
    print(("It takes %s seconds to download "+BLOBNAME) % (t2 - t1))
    
  2. Lees de gegevens in een Pandas DataFrame uit het gedownloade bestand.

    # LOCALFILE is the file path
    dataframe_blobdata = pd.read_csv(LOCALFILENAME)
    

Als u meer algemene informatie nodig hebt over het lezen van een Azure Storage Blob, bekijkt u onze documentatie Azure Storage Blobs-clientbibliotheek voor Python.

U bent nu klaar om de gegevens te verkennen en functies op deze gegevensset te genereren.

Voorbeelden van gegevensverkenning met pandas

Hier zijn enkele voorbeelden van manieren om gegevens te verkennen met pandas:

  1. Het aantal rijen en kolommen inspecteren

    print('the size of the data is: %d rows and  %d columns' % dataframe_blobdata.shape)
    
  2. Inspecteer de eerste of laatste paar rijen in de volgende gegevensset:

    dataframe_blobdata.head(10)
    
    dataframe_blobdata.tail(10)
    
  3. Controleer het gegevenstype dat elke kolom is geïmporteerd met behulp van de volgende voorbeeldcode

    for col in dataframe_blobdata.columns:
        print(dataframe_blobdata[col].name, ':\t', dataframe_blobdata[col].dtype)
    
  4. Controleer als volgt de basisstatistieken voor de kolommen in de gegevensset

    dataframe_blobdata.describe()
    
  5. Bekijk het aantal vermeldingen voor elke kolomwaarde als volgt

    dataframe_blobdata['<column_name>'].value_counts()
    
  6. Ontbrekende waarden tellen versus het werkelijke aantal vermeldingen in elke kolom met behulp van de volgende voorbeeldcode

    miss_num = dataframe_blobdata.shape[0] - dataframe_blobdata.count()
    print(miss_num)
    
  7. Als er waarden ontbreken voor een specifieke kolom in de gegevens, kunt u deze als volgt verwijderen:

    dataframe_blobdata_noNA = dataframe_blobdata.dropna()
    dataframe_blobdata_noNA.shape
    

    Een andere manier om ontbrekende waarden te vervangen is door de modusfunctie:

    dataframe_blobdata_mode = dataframe_blobdata.fillna(
        {'<column_name>': dataframe_blobdata['<column_name>'].mode()[0]})
    
  8. Een histogramplot maken met behulp van een variabel aantal opslaglocaties om de distributie van een variabele uit te plotten

    dataframe_blobdata['<column_name>'].value_counts().plot(kind='bar')
    
    np.log(dataframe_blobdata['<column_name>']+1).hist(bins=50)
    
  9. Bekijk correlaties tussen variabelen met behulp van een spreidingsdiagram of met behulp van de ingebouwde correlatiefunctie

    # relationship between column_a and column_b using scatter plot
    plt.scatter(dataframe_blobdata['<column_a>'], dataframe_blobdata['<column_b>'])
    
    # correlation between column_a and column_b
    dataframe_blobdata[['<column_a>', '<column_b>']].corr()