通常而言,一个国家的老板,什么时间睡觉什么时候工作,除了零星的新闻报道,外界无从知道。但是对于美国总统特朗普,想要知道这个秘密就不是那么难了。当然你得会点数据挖掘的方法。(幸运的是,关注我可以帮到你一点点)
至关重要的法宝就是分析特朗普发推文的时间。我们都知道两件事:
- 特朗普自己的手机自己做主,自己的推文自己发。
- 特朗普花大量的时间发送推文,在社交媒体上与人民对话。因此发推文等于是特朗普的工作。那么不发推文的时候,估计是在睡觉。
这个习惯其实和我们平常人是一样的,边工作边看朋友圈,你用手机的时间基本上可以看出你的作息状态。基于上面两点,我们可以保证说,分析特朗普的推文发送时间就知道特朗普的生活起居状态。
废话不多说,我们看看特朗普自从当然美国总统后的作息时间,如下图:
上面的数据基于特朗2017年1月1日以来1万7千多条推文分析得出的统计可视化图。
上面的图中,纵坐标代表24小时,0就是0点,23就是晚上11点钟。我们统计的时间间隔为每小时。所以上图张的每一个格子代表了在每个周天的每个小时,特朗普发送推文的频率。频率越高,颜色越深。
这样就很明显了,特朗普基本上从来不发推文的时间是凌晨5点到早上10点的5个小时。这段时间,特朗普应该在休息,或者早起的一些重要办公时间。另一方面,凌晨2点到凌晨5点,特朗普也经常发推文,说明特朗普睡觉时间一般都是在零点以后。稍微兴奋点,就会拖到凌晨4,5点。 当然也有可能是凌晨突然醒了以后,玩玩手机,顺便发发推文。
上面颜色最深的地方在中午12点到2点这个时间段,这个时间估计是特朗普总统工作最轻松的时候,除了吃饭就是发推文。很多重要信息都是这个时间段发出去的。
如果比较周天的话,周六周日发推比较少,周日最少。
怎么样,看到这个结果,大家感受到了美国总统的繁忙了吗?
下面介绍以下画图的方法。数据处理总的说来比较直接,就是数美国周天美国时段有多少条推文。但是我这里有两个处理:
- 某些时间段,总统会连发很多条推文。这种情况,每天的每一个时间段,无论发多少条推文,我都把他算作1条,从而尽量均匀的考虑每天的情况。
- 如果汇总起来的每个周天每个时间段的推文条数小于10条,我把清零,从而只关注常见的趋势。
如果你有准备好的数据,python下面,可用pandas得到dataframe, 比如下面格式:
用dataframe的pivot 方法,
xdf=df.pivot("hour", "weekday", "count")
得到新的dataframe 如图:
新的dataframe xdf 用下面的code即可得到热力图:
(jupyter notebook环境)
%matplotlib inline
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.figure(figsize = (16,8))
hm=sns.heatmap(xdf, annot=False)
hm.set_xlabel("周天",fontsize=30)
hm.set_ylabel("小时",fontsize=20)
hm.tick_params(labelsize=15)
#把代号0-6的坐标用周天表示会
weekdays = ["周一","周二","周三","周四","周五","周六","周日"]
xlabels = [weekdays[int(i)] for i in hm.get_xticks()]
hm.set_xticklabels(xlabels)
plt.show()
欢迎交流,加我as好友: