你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 pandas Python 包浏览 Azure Blob 存储中的数据

本文介绍如何使用 pandas Python 包浏览存储在 Azure Blob 容器中的数据。

此任务是团队数据科学过程中的一个步骤。

先决条件

本文假设用户具备以下条件:

将数据加载到 pandas 数据帧

要浏览和操作数据集,首先必须从 blob 源将数据集下载到本地文件,然后将数据集加载到 pandas 数据帧。 下面是此过程的所需步骤:

  1. 通过 Blob 服务使用下方 Python 代码示例从 Azure blob 下载数据。 使用特定值替代下方代码中的变量:

    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_instance.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. 从下载的文件中将数据读入 pandas 数据帧。

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

如需有关从 Azure 存储 Blob 中进行读取的更多常规信息,请查看用于 Python 的 Azure 存储 Blob 客户端库文档。

现在可以准备浏览数据并在此数据集上生成功能了。

使用 pandas 浏览数据的示例

下方举例说明了如何使用 pandas 浏览数据:

  1. 检查行数和列数

    print('the size of the data is: %d rows and  %d columns' % dataframe_blobdata.shape)
    
  2. 在下方数据集中检查前面或后面几

    dataframe_blobdata.head(10)
    
    dataframe_blobdata.tail(10)
    
  3. 使用如下示例代码检查每列导入的数据类型

    for col in dataframe_blobdata.columns:
        print(dataframe_blobdata[col].name, ':\t', dataframe_blobdata[col].dtype)
    
  4. 如下所示,检查数据中列的基本统计信息

    dataframe_blobdata.describe()
    
  5. 如下所示,查看每列值的条目数

    dataframe_blobdata['<column_name>'].value_counts()
    
  6. 使用下方示例代码计算每列中的缺失值与实际项目数

    miss_num = dataframe_blobdata.shape[0] - dataframe_blobdata.count()
    print(miss_num)
    
  7. 如果数据中的特定列存在缺失值,可按如下方法进行替代:

    dataframe_blobdata_noNA = dataframe_blobdata.dropna()
    dataframe_blobdata_noNA.shape
    

    另一种替代缺失值的方法是使用模式函数:

    dataframe_blobdata_mode = dataframe_blobdata.fillna(
        {'<column_name>': dataframe_blobdata['<column_name>'].mode()[0]})
    
  8. 使用数量不定的量化创建直方图绘制出变量分布情况

    dataframe_blobdata['<column_name>'].value_counts().plot(kind='bar')
    
    np.log(dataframe_blobdata['<column_name>']+1).hist(bins=50)
    
  9. 使用散点图或内置关联函数查看变量间的关联

    # 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()
    

作者

本文由 Microsoft 维护, 最初由以下贡献者撰写。

首席作者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。