这篇文章主要介绍了如何使用pandas进行数据分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
(一)获取微信好友的数据
为了获取微信好友的数据,需要使用一个工具,叫itchat。
itchat是网页微信的接口的封装。
在很久之前,小程介绍过如何给微信群自动地发送(批量)消息,用的就是itchat。
对于itchat的安装与使用,读者可以关注“广州小程”微信公众号,并在“软件基础”的菜单项中找到相应的文章进行查阅。
这里直接介绍使用itchat获取微信好友的信息。
试验一下,先算一下小程有多少异性朋友吧,可以这样写代码:
执行这段代码,可以看到这样的输出:
为了后续的数据分析,接下来,小程提取更具体的好友数据,并保存到文件,这里面用到了pandas。
读者如果没有安装pandas,那可以这样安装:
pip install pandas
以下是获取好友数据的代码:
执行这段代码,在本地生成了一个文件:friends_info.csv,csv文件一般是纯文本,用来保存记录的文件(一般所有记录都有相同的字段)。
用excel打开这个csv文件,可以看到这样的信息(如果读者发现excel打开会乱码,那可以先用word并选择用utf8来打开,然后再保存,之后再用excel打开):
这个csv文件的内容,就是后续数据分析的基础。
(二)分析数据
有了基础数据之后,就可以使用pandas进行分析,并用matplotlib进行绘图。
matplotlib是绘图的实用工具,小程另找机会详细介绍,读者可以先不管这部分内容,或者先简单了解,因为代码截图中有相应的解释。
这里演示对微信好友的性别与地区进行数据分析。
(1)引入pandas与matplotlib
引入pandas与matplotlib的代码,以及代码的执行效果是这样的:
(2)分析性别
这里根据性别种类的个数,绘制条形图。
先来看分析性别与绘制的代码,截图中的解释是重点内容:
执行这段代码,可以看到这样的输出与显示:
由展示图可见,小程的朋友以男性居多。
(3)分析地区
实现的思路跟性别分析类似,代码如下:
执行的效果如下:
由展示图可见,小程的朋友以广州跟深圳为主,小程的朋友圈很窄。
以上介绍了怎么分析性别与地区的分布数据,其中pandas的使用是本文的重点。
以上的代码中,用到了pandas的DataFrame跟Series类型,也用到了Series的统计函数max。
接下来,对pandas的知识再做一个简单的介绍。
(三)pandas的知识
pandas的数据,有两个类型。一个是DataFrame,一个是Series。
DataFrame就是一个数据表(由若干列组成),而Series就是其中的一列(一个字段的所有内容)。
对于数据分析的内容,读者可以查阅“广州小程”的“数据分析”专题的文章。
对于DataFrame或Series变量,有各种函数,可以完成数据分析,包括:个数、最大值、最小值、平均值、中位数、众数、方差、峰值,等等。
对于pandas的详细理解,可以参考这个文档:http://pandas.pydata.org/pandas-docs/stable/index.html
读者也可以边用边学。
至此,主要内容已经介绍完毕,以下为附带内容。
(三)词云图
小程拿到的好友信息中,包括了“签名”这项内容,一般来说,可以弄个词云图来看看签名的重点信息。
以下是小程顺带介绍的内容。
安装模块jieba,这是一个支持中文的分词器:
pip install jieba
安装模块PIL,这是一个图像处理库:
pip install Pillow
安装wordcloud,这是一个词云图库:
pip install wordcloud
实现微信好友的签名的词云图,大概的思路是这样的:使用pandas从基础数据中读取到一个数据表,从数据表中拿到签名的列并把这一列的内容转换成list,对签名list的每个签名逐一处理,过滤掉一些关键词,再使用正则表达式把一些特殊字符去除掉,最后把处理后的签名用空格拼接在一起,并调用分词器进行分词处理,得到一个分词list。创建词云图对象,设置背景颜色、字体等,并传递分词list,最终显示并保存词云图对象生成的图像。
实现的代码,请参考下图:
执行这段代码,可以看到这样的效果:
由图可见,小程的好友很有个性(喜欢说“自己”),小程的好友跟“程序”分不开,小程的好友已经开始聊人生与合作了(估计年纪比较大了)。
在生成词云图时,设置了背景图(back.jpg),小程这里使用的是这张图:
感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用pandas进行数据分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!