来自Bitly的usa.gov数据
1、数据说明:该数据是以json格式储存的,该数据集共有十八个维度,我在这里只做两个任务。
a. 对时区进行计数
b. 对windows以及非windows用户进行分组统计,并统计出在相同时区下Windows用户和非Windows用户的百分数占比。

#用pandas对其进行展示,并进行可视化。
import json
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns#读取json数据集并用图表格式显示
path = './datasets/bitly_usagov/example.txt'
records = [json.loads(line) for line in open(path)]
frame = pd.DataFrame(records)#对时区进行计数(用panda 的value_counts函数进行计数)
#首先对数据进行预处理,我们可以先给记录中的未知或缺失的时区值填上一个替代值。
clean_tz = frame['tz'].fillna('Missing')
clean_tz[clean_tz == ''] = 'Unknown'
count = clean_tz.value_counts() #该函数对tz的各个元素进行计数并按降序进行排列
#取出前十名并进行可视化
tz_counts = count[:10]
sns.barplot(y = tz.counts.index, x = tz.counts.values)#求出百分占比并进行可视化
def normaltotal(setdata):percent = setdata/setdata.sum()return percent
tz_percent = normaltotal(count)tz_percents = tz_percent[:10]
sns.barplot(y = tz_percents.index, x = tz_percents.values)
scale_ls = [i/10 for i in range(11)]
index_ls = [str(int((i*100)))+'%' for i in np.linspace(0,1,11)]
plt.xticks(scale_ls,index_ls)
plt.title('各时区所占百分比')
plt.show()#2.求出Windows用户和非Windows用户,定义维度a中包含了Windows的为Windows用户,其余为非Windows用户。
cframe = frame[frame.a.notnull()]
cframe['os'] = np.where(cframe['a'].str.contains('Windows'), 'Windows', 'NotWindows')
by_tz_os = cframe.groupby(['tz','os'])
agg_count = by_tz_os.size().unstack().fillna(0)
agg_count
count_subset = agg_count.loc[agg_count.sum(1).nlargest(10).index]
count_subset = count_subset.stack()
count_subset.name = 'total'
count_subset = count_subset.reset_index()#求出Windows用户NotWindows用户百分占比并进行可视化
def  normaltotal2(group):group['percent']= group.total/group.total.sum()return group
result = count_subset.groupby('tz').apply(normaltotal2)
sns.barplot(x = 'percent', y = 'tz', hue='os', dataset=result)
scale_ls = [i/10 for i in range(11)]
index_ls = [str(int((i*100)))+'%' for i in np.linspace(0,1,11)]
plt.xticks(scale_ls,index_ls)
plt.title('在同一时区下windows和notwindows用户的比例')
plt.show()



从图中可以看出在美国的用户比较多且在New_York的用户占到了总数的35%。

从图中可以看出各个时区的windows用户和非windows用户所占比差异。

本项目知识点总结:
1、将用户切分为windows和非windows用户的方法:
np.where(cframe[‘a’].str.contains(‘Windows’), ‘Windows’, ‘NotWindows’)
2、groupby的方法size返回一个包含组大小信息的Series,即分组计数。
3、count_values()与nlargest():
count_values 即分组计数并把数据从大到小进行排列
nlargest 即用groupby().size()后取出最大的几个数;也可以用series的方法argsort()加dataframe的 take方法实现。
即count_subset = agg_count.loc[agg_count.sum(1).nlargest(10).index]
也等于 indexer = agg_count.sum(1).argsort()
count_subset = agg_count.take(indexer[-10:])

利用Python进行数据分析案例相关推荐

  1. 利用python进行数据分析——第十四章_数据分析案例

    文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...

  2. 利用python进行数据分析 百度云-利用Python进行数据分析 原书第2版.pdf

    作 者 :(美)韦斯·麦金尼(Wes McKinney) 出版发行 : 北京:机械工业出版社 , 2018.07 ISBN号 :978-7-111-60370-2 页 数 : 480 原书定价 : 1 ...

  3. 利用python进行数据分析第二版pdf百度云_参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码...

    第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas.NumPy.IPython和Jupyter,并增加大量实际案例,可以帮助高效解决一系列数据分析问题. 第2版中的主要更新了Py ...

  4. 用python做数据分析pdf_利用python进行数据分析pdf

    利用python进行数据分析pdf微盘下载!<利用python进行数据分析>利用Python实现数据密集型应用由浅入深帮助读者解决数据分析问题~适合刚刚接触Python的分析人员以及刚刚接 ...

  5. 541页《利用Python进行数据分析》分享(附源码下载)

    1 前言 今天,StrongerTang 给大家分享一下 <利用Python进行数据分析>第二版,分享给有需要的小伙伴,也希望有更多的朋友能在StrongerTang相遇. 2 简介 &l ...

  6. 利用python进行数据分析第三版 mobi_利用python进行数据分析 pdf下载

    利用Python进行数据分析pdf电子版是一本广受好评的Python实战指导参考图书,该书以大量案例分析为基本,全面系统地教你如何解决各类数据分析问题,有兴趣的朋友快来下载吧! 利用Python进行数 ...

  7. 利用Python进行数据分析(第2版)

    Wes McKinney 是流行的Python开源数据分析库pandas的创始人.他是一名活跃的演讲者,也是Python数据社区和Apache软件基金会的Python/C++开源开发者.目前他在纽约从 ...

  8. 干货 | 《利用Python进行数据分析》资料开源下载

    今天要跟大家分享的是数据分析领域的必备书籍之一的<利用Python进行数据分析>第二版.英文名为 Python for Data Analysis. 本书作者Wes McKinney 资深 ...

  9. 利用python进行数据分析 英文-如何学习和评价《利用python进行数据分析》这本书?...

    作为用Python做数据分析的必读书籍之一,这本书的开篇有向读者说明,这本书关注的是利用Python操作.处理.清洗和操作数据时的基本要点.目标是提供一份Python编程语言以及Python面向数据的 ...

最新文章

  1. 【分享】工作流支持邮件提醒相关配置
  2. F - Tickets (预处理)
  3. 4g模块注册上网 移远_通信模组企业 移远通信amp;广和通
  4. mysql spj_解决Electron启动出现短暂的白屏 - SegmentFault 思否
  5. vscode + angular
  6. 客户端负载均衡及透明应用切换(TAF)tnsnames failover=on
  7. 全新版本的SoundSource for Mac 优质的音频控制软件
  8. 从零开发一款Android RTMP播放器
  9. python列表可以放多少个字符串_列表中可以放多少个字符串( )_学小易找答案
  10. 浅谈歌词文件(LRC、QRC、KRC)
  11. 如何使用机器学习在一个非常小的数据集上做出预测
  12. 计算机应用职业生涯规划,计算机应用专业个人职业规划
  13. 关于法线贴图、颜色贴图和高光贴图
  14. Codeforces--760B--Frodo and pillows
  15. 招银网络2018笔试分享
  16. p系统ndows10的功能更新1903,Win10 1903到底有什么不同?Win10 1903更新内容汇总
  17. 【WebDriver】WebDriverWait 用法代码
  18. 杰理之省电容MIC收敛值【篇】
  19. 自动化运维之自动化监控
  20. 【智能优化算法】基于倭黑猩猩优化算法求解单目标优化问题附matlab代码

热门文章

  1. 爬虫|巨潮资讯网上市公司年报爬取
  2. 滤波总结+应用举例1(kalman滤波、序贯滤波、UD分解滤波、遗忘滤波、信息滤波、自适应滤波)(内含matlab代码)
  3. 文献日志:EMNLP2020-自适应性语言普适分析器
  4. 学硕与专硕,全日制与非全日制,定向与非定向......8大考研常识,你清楚吗?
  5. 【Python】计算机视觉 手掌图片穴位识别(二)
  6. dxf geojson 转换,如何将CAD(DWG)文件转换为GeoJSON?
  7. 计算机视觉(2)随记
  8. 低密洋房+超高得房率+三面宽“眼镜”户型=终极居住体 滙德里
  9. ChatGPT终于被缝进了搜索引擎…
  10. HeadFirst:设计模式-观察者模式