截至2020年第二季度,微信拥有超过27亿活跃用户。这意味着,如果你正在阅读大数据如何使用Python分析微信数据,那么你很可能是微信用户。但是,你到底有多少微信用户?你实际发布了多少?我们可以使用Python找出答案!
具体来说,我们将使用Python创建此图表,该图表显示了我们每月随时间发布的频率:
出于大数据如何使用Python分析微信数据的目的,我们假设你熟悉Python和Jupyter Notebook的基础知识-如果不熟悉,请首先阅读大数据如何使用Python分析微信数据以分析你的Amazon支出。
步骤1:下载你的微信数据
微信实际上允许我们下载我们在该网站上所做的几乎所有事情。你可以在此处下载数据,但你可能不想下载所有数据-该文件可能很大,具体取决于你使用微信的频率以及使用该文件的时间。
对于大数据如何使用Python分析微信数据,我们将专门研究我们自己的个人微信帖子,并尝试回答以下问题:
1)我多久发布一次?
2)我使用微信的次数比以前多还是少?
要仅获取与帖子有关的数据,请转到数据下载页面。将请求的文件格式从HTML更改为JSON,然后从以下选项中取消选择所有内容,仅选中帖子,然后点击创建文件。
创建文件并准备下载文件时,微信会通知你-这可能需要一段时间,具体取决于你的微信历史记录和选项。
下载zip文件,解压缩,然后查找posts文件夹和名为的文件your_posts_1.json。这就是我们将在大数据如何使用Python分析微信数据中使用的文件。
步骤2:导入和格式化数据
接下来,我们必须将这些数据放入pandas数据框中,因此启动Jupyter Notebooks(如果需要复习,这里是Jupyter Notebooks的初学者指南)。我们将从导入数据并将其读取到DataFrame开始。
内置pd.read_json()函数将能够自动解释DataFrame中的JSON数据。(你会看到,它并不完美,但是在这里可以满足我们的目的)。
如我们所见,这并不完美。我们的某些列在每一行中都有嵌套的子列,这些子列仍为JSON格式。如果我们想使用这些数据,则需要处理。
但是要在这里回答我们的问题- 我们在微信上发布的内容比以前更多还是更少?-我们确实不需要处理实际的帖子内容或其他信息,例如附加的媒体文件。我们只关心频率 -新帖的发布频率。
接下来,我们将确保timestamp列的格式正确,然后使用将其转换为datetime对象to_datetime()。'date'为了清楚起见,我们还将重命名它并删除一些不必要的列-严格来说这不是必须的步骤,但这有助于我们更轻松地进行查看。
现在,我们有了一些更清洁的东西可以使用!如果我们要检查正在分析的帖子df.shape数,可以用来计算行数。
df.tail()检查数据框的结尾也可能是一个好主意,以确保它确实涵盖了我们整个微信的使用情况:
以我的个人微信数据为例,我总共发布了4,000多次。我的数据可以追溯到2005年初,当时我显然发布了一些有关“ 美国夏季热天气”的信息。我在2005年上大学,所以时间安排得很。
你可能会注意到有些行显示为NaN-这些帖子仅包含图片,不包含文字。图片将在该'attachments'列中链接,但是我们已将其删除,因此在此处不可见。
第3步:计算月度帖子计数
现在我们有了数据,我们需要将其转换成一种可以告诉我们有关发布频率的格式。鉴于我们在这里已有多年的历史,所以逐月查看它是最有意义的。这意味着我们需要'date'按月对列进行分组,并计算每个月与多少行(即帖子)相关联。
幸运的是,pandas的设计使使用时间序列数据变得相对简单。我们需要在这里做两件事:
1)将date列设置为我们的DataFrame的索引。
2)按月重新采样数据,计算每个月有多少帖子。
第一步,我们可以使用set_index()。第二步比较复杂,所以让我们将其分为四个单独的步骤,以分解我们需要编写的代码:
1)选择我们要重采样的列-在这种情况下,就是该data列。
2)将.resample()函数与参数一起使用'MS'(“月开始”),可以按月对数据进行重新采样。
3)使用.size()指定我们想要每个月来衡量-在这种情况下,行(即职位)具有落入该月内的一个发布日期的数量。
4)将结果系列分配给名为的变量post_counts。
这是实际的情况:
看起来很棒!我们按月细分了发帖计数,如果我们检查原始数据集,我们可以很快看到计数是正确的。
请注意,没有帖子的月份被正确地计为0而不是被略过。这就是为什么使用resample(),旨在与时间序列配合使用的原因,比起使用类似的东西更好的原因,使用,groupby()如果我们不小心,很容易跳过没有数据的月份。
步骤4:可视化你的微信使用情况
无论如何,既然我们已经完成了棘手的部分,剩下的就是乐趣:可视化!为此,我们将导入matplotlib(并使用%matplotlib inline魔术使图表显示在Jupyter Notebook中。还将导入Seaborn和NumPy,这将有助于我们制作更具可读性的图表。
导入完成后,将用于sns.set()设置图表的大小和字体大小。由于我们在此处处理大量数据,因此我们将使图表很大,并确保字体大小足够大以便可读。
然后,我们将设置x标签以使用post_counts(日期)的索引,并用于sns.barplot()创建条形图。在的参数中sns.barplot(),我们将告诉函数使用定义的x标签,在中绘制数据post_counts,并使条形变为蓝色。
仅此一项就足以创建基本图表,但是在这种情况下,我们将要采取一些其他步骤来使图表更具可读性。具体来说,我们希望将x轴上的刻度位置安排为每24个月一次,以便在结果图表中每隔一年查看一次刻度。我们还希望重新格式化图表中的日期,以便仅显示年份。
(由于这不是关于数据可视化的教程,因此,在大数据如何使用Python分析微信数据中,我们不会对其进行深入研究。但是,如果你想了解更多有关如何使用Python进行出色的数据可视化的信息,我们你可以免费尝试探索性数据可视化和通过数据可视化讲故事的课程)。
我们仍然可以通过某些方法使此图表更加美观,但是出于我们的目的,这足以理解数据并分析我们的微信发布历史记录。
就我而言-上面的图表是我的个人微信数据-我们可以看到我很少在初期发布在微信上。我有大量的帖子-每月数百个!-在2007年夏季和2009年春季,这与旅行相吻合。
我的常规使用量在2011年左右开始回升,并在2016年左右达到峰值。此后,它逐渐消失,从2019年开始我完全停止使用微信。在高峰期,我每个月发布近100次!
记住,那只是帖子,不是评论!还有其他用于评论的JSON文件,但是我很尴尬。如果你想进一步分析,那么深入研究注释文件将是一个不错的下一步!
让我们在大数据如何使用Python分析微信数据上称赞它,并回顾一下我们已完成的工作:
1)我们从微信下载了个人使用数据
2)我们将JSON文件读入pandas DataFrame中
3)我们按月细分了数据,并统计了每个月的帖子数
4)我们可视化了微信的用法并学到了一些东西:查理(Charlie)过去在微信上花费了太多时间。
如果你喜欢做这样的项目,请查看AAA教育的交互式浏览器内课程!与我们在此介绍的内容相比,它们更具沉浸感和方式,更深入。实际上,我们提供了无缝的课程序列,可以使你从初学者到合格的数据分析师,数据科学家或数据工程师。
填写下面表单即可预约申请免费试听!怕钱不够?可先就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可推荐就业!
©2007-2022/ www.aaa-cg.com.cn 北京漫动者数字科技有限公司 备案号: 京ICP备12034770号 监督电话:010-53672995 邮箱:bjaaa@aaaedu.cc