文章目录

  • 一. 数据源介绍
  • 二. 将浮点型转为整数
  • 三. 获取网页的语言
  • 四. 分析不同语言的时间序列
  • 五. 查看英文下各个词条的时间序列
  • 六. 各个语言的热点词条
  • 参考:

一. 数据源介绍

train_1.csv:
维基百科各个词条每天点击量

二. 将浮点型转为整数

浮点型数据更占内存,所以我们可以将浮点型转为整形,减小内存的消耗,从而加快程序运行的速度

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re# 读取数据源
train = pd.read_csv('E:/file/train_1.csv').fillna(0)
print(train.head())
print(train.info())
print("########################################################")# 浮点数占内存,转为 整数
for col in train.columns[1:]:train[col] = pd.to_numeric(train[col],downcast='integer')
print(train.head())
print(train.info())
print("########################################################")

测试记录:

                                                Page  ...  2016-12-31
0            2NE1_zh.wikipedia.org_all-access_spider  ...        20.0
1             2PM_zh.wikipedia.org_all-access_spider  ...        20.0
2              3C_zh.wikipedia.org_all-access_spider  ...        17.0
3         4minute_zh.wikipedia.org_all-access_spider  ...        11.0
4  52_Hz_I_Love_You_zh.wikipedia.org_all-access_s...  ...        10.0[5 rows x 551 columns]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 145063 entries, 0 to 145062
Columns: 551 entries, Page to 2016-12-31
dtypes: float64(550), object(1)
memory usage: 609.8+ MB
None
########################################################Page  ...  2016-12-31
0            2NE1_zh.wikipedia.org_all-access_spider  ...          20
1             2PM_zh.wikipedia.org_all-access_spider  ...          20
2              3C_zh.wikipedia.org_all-access_spider  ...          17
3         4minute_zh.wikipedia.org_all-access_spider  ...          11
4  52_Hz_I_Love_You_zh.wikipedia.org_all-access_s...  ...          10[5 rows x 551 columns]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 145063 entries, 0 to 145062
Columns: 551 entries, Page to 2016-12-31
dtypes: int32(550), object(1)
memory usage: 305.5+ MB
None
########################################################

三. 获取网页的语言

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re# 读取数据源
train = pd.read_csv('E:/file/train_1.csv').fillna(0)# 浮点数占内存,转为 整数
#for col in train.columns[1:]:
#    train[col] = pd.to_numeric(train[col],downcast='integer')# 获取网页的语言
def get_language(page):res = re.search('[a-z][a-z].wikipedia.org',page)#print (res.group()[0:2])if res:return res.group()[0:2]return 'na'train['lang'] = train.Page.map(get_language)from collections import Counterprint(Counter(train.lang))

测试记录:

Counter({'en': 24108, 'ja': 20431, 'de': 18547, 'na': 17855, 'fr': 17802, 'zh': 17229, 'ru': 15022, 'es': 14069})

四. 分析不同语言的时间序列

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
from collections import Counter# 读取数据源
train = pd.read_csv('E:/file/train_1.csv').fillna(0)# 浮点数占内存,转为 整数
#for col in train.columns[1:]:
#    train[col] = pd.to_numeric(train[col],downcast='integer')# 获取网页的语言
def get_language(page):res = re.search('[a-z][a-z].wikipedia.org',page)#print (res.group()[0:2])if res:return res.group()[0:2]return 'na'train['lang'] = train.Page.map(get_language)# 将不同的语言放到一个列表里
lang_sets = {}
lang_sets['en'] = train[train.lang=='en'].iloc[:,0:-1]
lang_sets['ja'] = train[train.lang=='ja'].iloc[:,0:-1]
lang_sets['de'] = train[train.lang=='de'].iloc[:,0:-1]
lang_sets['na'] = train[train.lang=='na'].iloc[:,0:-1]
lang_sets['fr'] = train[train.lang=='fr'].iloc[:,0:-1]
lang_sets['zh'] = train[train.lang=='zh'].iloc[:,0:-1]
lang_sets['ru'] = train[train.lang=='ru'].iloc[:,0:-1]
lang_sets['es'] = train[train.lang=='es'].iloc[:,0:-1]sums = {}
for key in lang_sets:sums[key] = lang_sets[key].iloc[:,1:].sum(axis=0) / lang_sets[key].shape[0]days = [r for r in range(sums['en'].shape[0])]# 画图进行分析
fig = plt.figure(1, figsize=[10, 10])
plt.ylabel('Views per Page')
plt.xlabel('Day')
plt.title('Pages in Different Languages')
labels = {'en': 'English', 'ja': 'Japanese', 'de': 'German','na': 'Media', 'fr': 'French', 'zh': 'Chinese','ru': 'Russian', 'es': 'Spanish'}for key in sums:plt.plot(days, sums[key], label=labels[key])plt.legend()
plt.show()

测试记录:
我们可以看到英文的明显高于其他语言的
中间凸起的,一般是有热点时间发生,浏览量飞速上升

五. 查看英文下各个词条的时间序列

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
from collections import Counter# 读取数据源
train = pd.read_csv('E:/file/train_1.csv').fillna(0)# 浮点数占内存,转为 整数
#for col in train.columns[1:]:
#    train[col] = pd.to_numeric(train[col],downcast='integer')# 获取网页的语言
def get_language(page):res = re.search('[a-z][a-z].wikipedia.org',page)#print (res.group()[0:2])if res:return res.group()[0:2]return 'na'train['lang'] = train.Page.map(get_language)# 将不同的语言放到一个列表里
lang_sets = {}
lang_sets['en'] = train[train.lang=='en'].iloc[:,0:-1]
lang_sets['ja'] = train[train.lang=='ja'].iloc[:,0:-1]
lang_sets['de'] = train[train.lang=='de'].iloc[:,0:-1]
lang_sets['na'] = train[train.lang=='na'].iloc[:,0:-1]
lang_sets['fr'] = train[train.lang=='fr'].iloc[:,0:-1]
lang_sets['zh'] = train[train.lang=='zh'].iloc[:,0:-1]
lang_sets['ru'] = train[train.lang=='ru'].iloc[:,0:-1]
lang_sets['es'] = train[train.lang=='es'].iloc[:,0:-1]sums = {}
for key in lang_sets:sums[key] = lang_sets[key].iloc[:,1:].sum(axis=0) / lang_sets[key].shape[0]days = [r for r in range(sums['en'].shape[0])]def plot_entry(key, idx):data = lang_sets[key].iloc[idx, 1:]fig = plt.figure(1, figsize=(10, 5))plt.plot(days, data)plt.xlabel('day')plt.ylabel('views')plt.title(train.iloc[lang_sets[key].index[idx], 0])plt.show()idx = [1, 5, 10, 50, 100, 250,500, 750,1000,1500,2000,3000,4000,5000]
for i in idx:plot_entry('en',i)plt.show()

测试记录:

后面的进行省略

六. 各个语言的热点词条

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
from collections import Counter# 读取数据源
train = pd.read_csv('E:/file/train_1.csv').fillna(0)# 浮点数占内存,转为 整数
#for col in train.columns[1:]:
#    train[col] = pd.to_numeric(train[col],downcast='integer')# 获取网页的语言
def get_language(page):res = re.search('[a-z][a-z].wikipedia.org',page)#print (res.group()[0:2])if res:return res.group()[0:2]return 'na'train['lang'] = train.Page.map(get_language)lang_sets = {}
lang_sets['en'] = train[train.lang=='en'].iloc[:,0:-1]
lang_sets['ja'] = train[train.lang=='ja'].iloc[:,0:-1]
lang_sets['de'] = train[train.lang=='de'].iloc[:,0:-1]
lang_sets['na'] = train[train.lang=='na'].iloc[:,0:-1]
lang_sets['fr'] = train[train.lang=='fr'].iloc[:,0:-1]
lang_sets['zh'] = train[train.lang=='zh'].iloc[:,0:-1]
lang_sets['ru'] = train[train.lang=='ru'].iloc[:,0:-1]
lang_sets['es'] = train[train.lang=='es'].iloc[:,0:-1]sums = {}
for key in lang_sets:sums[key] = lang_sets[key].iloc[:,1:].sum(axis=0) / lang_sets[key].shape[0]days = [r for r in range(sums['en'].shape[0])]npages = 5
top_pages = {}
for key in lang_sets:print(key)sum_set = pd.DataFrame(lang_sets[key][['Page']])sum_set['total'] = lang_sets[key].sum(axis=1)sum_set = sum_set.sort_values('total',ascending=False)print(sum_set.head(10))top_pages[key] = sum_set.index[0]print('\n\n')for key in top_pages:fig = plt.figure(1,figsize=(10,5))cols = train.columnscols = cols[1:-1]data = train.loc[top_pages[key],cols]plt.plot(days,data)plt.xlabel('Days')plt.ylabel('Views')plt.title(train.loc[top_pages[key],'Page'])plt.show()

测试记录:

enPage         total
38573   Main_Page_en.wikipedia.org_all-access_all-agents  1.206618e+10
9774       Main_Page_en.wikipedia.org_desktop_all-agents  8.774497e+09
74114   Main_Page_en.wikipedia.org_mobile-web_all-agents  3.153985e+09
39180  Special:Search_en.wikipedia.org_all-access_all...  1.304079e+09
10403  Special:Search_en.wikipedia.org_desktop_all-ag...  1.011848e+09
74690  Special:Search_en.wikipedia.org_mobile-web_all...  2.921628e+08
39172  Special:Book_en.wikipedia.org_all-access_all-a...  1.339931e+08
10399   Special:Book_en.wikipedia.org_desktop_all-agents  1.332859e+08
33644       Main_Page_en.wikipedia.org_all-access_spider  1.290204e+08
34257  Special:Search_en.wikipedia.org_all-access_spider  1.243102e+08jaPage        total
120336      メインページ_ja.wikipedia.org_all-access_all-agents  210753795.0
86431          メインページ_ja.wikipedia.org_desktop_all-agents  134147415.0
123025       特別:検索_ja.wikipedia.org_all-access_all-agents   70316929.0
89202           特別:検索_ja.wikipedia.org_desktop_all-agents   69215206.0
57309       メインページ_ja.wikipedia.org_mobile-web_all-agents   66459122.0
119609    特別:最近の更新_ja.wikipedia.org_all-access_all-agents   17662791.0
88897        特別:最近の更新_ja.wikipedia.org_desktop_all-agents   17627621.0
119625        真田信繁_ja.wikipedia.org_all-access_all-agents   10793039.0
123292  特別:外部リンク検索_ja.wikipedia.org_all-access_all-agents   10331191.0
89463      特別:外部リンク検索_ja.wikipedia.org_desktop_all-agents   10327917.0dePage         total
139119  Wikipedia:Hauptseite_de.wikipedia.org_all-acce...  1.603934e+09
116196  Wikipedia:Hauptseite_de.wikipedia.org_mobile-w...  1.112689e+09
67049   Wikipedia:Hauptseite_de.wikipedia.org_desktop_...  4.269924e+08
140151  Spezial:Suche_de.wikipedia.org_all-access_all-...  2.234259e+08
66736   Spezial:Suche_de.wikipedia.org_desktop_all-agents  2.196368e+08
140147  Spezial:Anmelden_de.wikipedia.org_all-access_a...  4.029181e+07
138800  Special:Search_de.wikipedia.org_all-access_all...  3.988154e+07
68104   Spezial:Anmelden_de.wikipedia.org_desktop_all-...  3.535523e+07
68511   Special:MyPage/toolserverhelferleinconfig.js_d...  3.258496e+07
137765  Hauptseite_de.wikipedia.org_all-access_all-agents  3.173246e+07naPage       total
45071  Special:Search_commons.wikimedia.org_all-acces...  67150638.0
81665  Special:Search_commons.wikimedia.org_desktop_a...  63349756.0
45056  Special:CreateAccount_commons.wikimedia.org_al...  53795386.0
45028  Main_Page_commons.wikimedia.org_all-access_all...  52732292.0
81644  Special:CreateAccount_commons.wikimedia.org_de...  48061029.0
81610  Main_Page_commons.wikimedia.org_desktop_all-ag...  39160923.0
46078  Special:RecentChangesLinked_commons.wikimedia....  28306336.0
45078  Special:UploadWizard_commons.wikimedia.org_all...  23733805.0
81671  Special:UploadWizard_commons.wikimedia.org_des...  22008544.0
82680  Special:RecentChangesLinked_commons.wikimedia....  21915202.0frPage        total
27330   Wikipédia:Accueil_principal_fr.wikipedia.org_a...  868480667.0
55104   Wikipédia:Accueil_principal_fr.wikipedia.org_m...  611302821.0
7344    Wikipédia:Accueil_principal_fr.wikipedia.org_d...  239589012.0
27825   Spécial:Recherche_fr.wikipedia.org_all-access_...   95666374.0
8221    Spécial:Recherche_fr.wikipedia.org_desktop_all...   88448938.0
26500   Sp?cial:Search_fr.wikipedia.org_all-access_all...   76194568.0
6978    Sp?cial:Search_fr.wikipedia.org_desktop_all-ag...   76185450.0
131296  Wikipédia:Accueil_principal_fr.wikipedia.org_a...   63860799.0
26993   Organisme_de_placement_collectif_en_valeurs_mo...   36647929.0
7213    Organisme_de_placement_collectif_en_valeurs_mo...   36624145.0zhPage        total
28727   Wikipedia:首页_zh.wikipedia.org_all-access_all-a...  123694312.0
61350    Wikipedia:首页_zh.wikipedia.org_desktop_all-agents   66435641.0
105844  Wikipedia:首页_zh.wikipedia.org_mobile-web_all-a...   50887429.0
28728   Special:搜索_zh.wikipedia.org_all-access_all-agents   48678124.0
61351      Special:搜索_zh.wikipedia.org_desktop_all-agents   48203843.0
28089   Running_Man_zh.wikipedia.org_all-access_all-ag...   11485845.0
30960   Special:链接搜索_zh.wikipedia.org_all-access_all-a...   10320403.0
63510    Special:链接搜索_zh.wikipedia.org_desktop_all-agents   10320336.0
60711     Running_Man_zh.wikipedia.org_desktop_all-agents    7968443.0
30446    瑯琊榜_(電視劇)_zh.wikipedia.org_all-access_all-agents    5891589.0ruPage         total
99322   Заглавная_страница_ru.wikipedia.org_all-access...  1.086019e+09
103123  Заглавная_страница_ru.wikipedia.org_desktop_al...  7.428800e+08
17670   Заглавная_страница_ru.wikipedia.org_mobile-web...  3.279304e+08
99537   Служебная:Поиск_ru.wikipedia.org_all-access_al...  1.037643e+08
103349  Служебная:Поиск_ru.wikipedia.org_desktop_all-a...  9.866417e+07
100414  Служебная:Ссылки_сюда_ru.wikipedia.org_all-acc...  2.510200e+07
104195  Служебная:Ссылки_сюда_ru.wikipedia.org_desktop...  2.505816e+07
97670   Special:Search_ru.wikipedia.org_all-access_all...  2.437457e+07
101457  Special:Search_ru.wikipedia.org_desktop_all-ag...  2.195847e+07
98301   Служебная:Вход_ru.wikipedia.org_all-access_all...  1.216259e+07esPage        total
92205   Wikipedia:Portada_es.wikipedia.org_all-access_...  751492304.0
95855   Wikipedia:Portada_es.wikipedia.org_mobile-web_...  565077372.0
90810   Especial:Buscar_es.wikipedia.org_all-access_al...  194491245.0
71199   Wikipedia:Portada_es.wikipedia.org_desktop_all...  165439354.0
69939   Especial:Buscar_es.wikipedia.org_desktop_all-a...  160431271.0
94389   Especial:Buscar_es.wikipedia.org_mobile-web_al...   34059966.0
90813   Especial:Entrar_es.wikipedia.org_all-access_al...   33983359.0
143440  Wikipedia:Portada_es.wikipedia.org_all-access_...   31615409.0
93094   Lali_Espósito_es.wikipedia.org_all-access_all-...   26602688.0
69942   Especial:Entrar_es.wikipedia.org_desktop_all-a...   25747141.0

后面的进行省略

参考:

  1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1

Python数据分析与机器学习47-维基百科词条EDA相关推荐

  1. 基于python的数据建模与分析案例_基于案例详解Python数据分析与机器学习

    课程概述: 使用数据领域最主流语言Python及其分析与建模库作为核心武器.对于机器学习经典算法给出完整的原理推导并基于实例进行讲解,基于案例演示如何应用机器学习算法解决实际问题. 课程特色: 通俗易 ...

  2. java 爬 维基百科_爬取维基百科词条

    python爬取维基百科词条,获得某词汇页面中释义段落的加粗词汇.链接词汇以及所爬词汇对应的分类,为自动构建同义词汇树准备数据. 以下代码可能为一次性代码,因为解析html靠的是标签的相对位置,维基百 ...

  3. 【Python爬虫】Python网络爬虫案例:维基百科

    Python网络爬虫案例:维基百科 1.项目描述 本案例的目标是爬取维基百科上的词条连接.爬虫深度设置为两层. 网络蜘蛛:是通过网页的链接地址寻找网页的,从网站某一个页面(通常是首页)开始读取网页的内 ...

  4. 如何编辑维基百科词条?WIKI词条编辑技巧

    如何编辑维基百科词条?WIKI词条编辑技巧如下: 第一步 对几个常用的在线百科网站进行了解,注册用户,了解编辑说明,注意各网站对词条编写及修改的规则. 第二步 确定自己希望编写的词条.可以选择自己熟悉 ...

  5. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  6. python数据分析和机器学习入门,我有一些书单来推荐

    想要快速入门python数据分析与机器学习,书籍是一个很好的门路,可以帮助我们系统的快速入门! 下面是一些不错的书单,分享给大家,我也在拔草中,未来会把阅读笔记分享在我的公众号:python数据分析和 ...

  7. 海外市场推广:企业品牌如何创建维基百科词条?维基百科词条的创建流程

    海外市场推广:企业品牌如何创建维基百科词条?维基百科词条的创建流程 1.研究维基百科页面的主题 在您创建自己的文章之前,请确保您拥有一个合理的主题,这个主题是有来源且无偏见的. 您的写作应该是高质量的 ...

  8. [python学习] 简单爬取维基百科程序语言消息盒

    文章主要讲述如何通过Python爬取维基百科的消息盒(Infobox),主要是通过正则表达式和urllib实现:后面的文章可能会讲述通过BeautifulSoup实现爬取网页知识.由于这方面的文章还是 ...

  9. 跟着迪哥学python 经管之家_跟着迪哥学Python数据分析与机器学习实战

    本书结合了机器学习.数据分析和Python语言,通过案例以通俗易懂的方式讲解了如何将算法应用到实际任务. 全书共20章,大致分为4个部分.第一部分介绍了Python的工具包,包括科学计算库Numpy. ...

最新文章

  1. 64位java_99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
  2. PrintWriter write与println方法的区别
  3. windows下生成github ssh key详解
  4. jacascript 立即执行函数(IIFE)与闭包
  5. Spring MVC类型转换的意义
  6. Latex beamer 学习总结
  7. 软件实施工程师是一个什么样的工作?他的具体工作内容是什么?发展前景怎样?.
  8. WinRAR 5.60 官方简体中文无广告弹窗版本
  9. java jbutton icon 边框_Swing开发JButton图标效果篇
  10. 批量重命名图片,去除括号
  11. 使用 IDEA 的阿里插件扫描出的问题的级别
  12. Mac系统查看端口占用的进程
  13. css3中的属性选择器有哪些,CSS3中属性选择器使用方法详解
  14. 【maven本地打包脚本】Git/Svn代码更新+maven打包流水线
  15. Indian English(印度英语)
  16. opencv双目标定常见问题总结
  17. linux 灰度显示grayscale
  18. STEP找不到CPU
  19. 汉字乱码现象的分类解析
  20. MHDD详细图解教程一

热门文章

  1. 搜索思维[PPT制作]
  2. SAP 批量导出客户主数据
  3. 游戏安全资讯精选 2017年第十六期:房卡式棋牌游戏涉赌博风波,抓娃娃火爆市场背后的安全隐患需警惕,Linux内核的Huge Dirty Cow权限提升漏洞...
  4. 手动制作Linux,手动制作linux
  5. 软件测试自学毛笔字纹身,ps纹身教程_photoshop给人物添加纹身效果实例制作教程...
  6. Oracle数据库如何保存中文特殊字符到数据库表中,防止出现问号
  7. html 地区筛选插件,帝国CMS7.2实现地区三级联动并且前台可地区筛选的插件教程...
  8. excel 锁定第一行
  9. 用户调查显示,Rust语言很难学习和使用
  10. 荣耀8怎样修改wifi服务器,手机怎么设置荣耀路由器wifi密码?