《利用python进行数据分析》读书笔记之案例一:来自bit.ly的1.usa.gov数据

本文介绍如何从JSON格式的数据文件中提取信息,并利用Python进行数据分析,具体包括使用json模块读取数据、利用pandas进行数据清洗与统计分析,最终通过matplotlib绘制时区分布的水平条形图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            从网上下来的数据文件,先读取文件中的第一行查看是什么数据类型     

     path="usagov_data.txt"  
     open(path).readline() 
         结果是:

         

        从上面的数据格式可看出是json格式,在python中有许多内置或第三方模块可以将json转化成python的字典对             象,将使用json模块及loads函数逐行加载该数据文件:      

    import json
    path="usagov_data.txt"
    records=[json.loads(line) for line in open(path)]
       结果是:这只是records[0]

               

         (1) 想知道该数据集中最常出现的是哪个时区:先要得到表示时区的数据,然后再计数:          

     time_zones=[rec['tz'] for rec in records if 'tz' in rec] #加if是因为并不是所有记录都有时区字段
         结果是:

         

     from collections import Counter
     counts=Counter(time_zones)
     counts.most_common(10)

         结果是:

              

           (2) 将数据转换成DataFrame数据结构      

     import pandas as pd
     import numpy as np
     frame=pd.DataFrame(records)
           结果是:

             

        (3) 在dataframe中用来计数的可以使用value_counts函数,返回得到的是Series对象       

     tz_counts=frame['tz'].value_counts()

         结果是:

            
         可以看到上述的数据展示中有缺失值,fillna函数可以用来替换缺失值(NA),而未知值可以通过布尔数组索引            加以替换:
      

     clean_tz=frame['tz'].fillna('Missing')
     clean_tz[clean_tz=='']='Unknown'
     tz_counts=clean_tz.value_counts()

         结果是:

        

        (4) 可以得到一张水平条形图:   

    import matplotlib.pyplot as plt
    tz_counts[:10].plot(kind='barh',rot=0)
    plt.show()

       结果是:

        

   

                

                 
 
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值