公司某商户要求统计其签名的发送情况,及包含特定内容的短信数量统计,使用request.post 获取该商户整个8月的短信发送情况,共50多万条。
获取数据
导入相关库
1 | import requests |
1 | cookie = 'ASP.NET_SessionId=5j05wibdhiwm5lur5tiiyq2z; .ASPXAUTH=8C8DA9675470DF317C657D7180EEDB3C1F3AA434507EBFEEF8E0D2311FE7F05DDC2A4BC165D4D08413C2E78F65632521139050F4C104C103C588EBEA5BA20180B0FD21574B5984EF6AE4587B71D530BFDF146C2C7826EFAD3E23B879F95532B710563B921A083560ACD33CC6FBC73983FECAF0AEA9815391CBA5C269887B3C442362D27CD9AA41E92CF282B78D1B8A5B2185DE39063EC0256D5B6C793E4B84C4C48EE28F728D25D4CEEB3C5D161E9F7C6BC2F0433DC520572500CDD84E26AE6703B4DACD1E5A764CC9DADDBEC949E05F200F894FBA3C1007C1659CB087341A8D26B2377D0D926470B523CE705650F39CEDF5EEC487FF0A4F0975275FFFA86CF435A25C7614811FE6623FACDC58B934428EC29A658ADD56690A830758CCD35FDCE5F9ED8B5C0ACA50677BCA5E5E4359FD77E23805211164C0629A178E3C9012016A6CF80A317A0080D108E296107178D1EE0F5FF67A23DB626B7000790427A56C2805EC1C15BDBC7D43C13AE9CB07ED5EDEF335C2FF03C1818DCDBCE06F996362E3B8FFDD44CA3CF22BEA2818351DB6E92B059AC1507A9605C165DD1CAF72F771F216A12521524FC239ED0FE271D4D0B79A3E0E201568D74E9516854E4CBF403CF55D7876EF276CCAFEA048D8611D64825A37232687890A2D0594DC03DBC071DEDFA449E50C0186AFBA00157C1BCE84910C367FC8F6271D5F98DE4EF548B26A7D82DC71C7AE06E936DC766EEBA32CF3482509E5A0A9A9F6519D04810EE3F6AFDED3ACD487101F5BEF458205A6A6C2DB4088B522FE0258C736DC48DA89' |
1 | def write_fo_file(rows): |
分析数据
数据处理:导入数据,加列名,提取天和小时,给手机号脱敏
1 | import pandas as pd |

设置中文字体
1 | plt.rcParams['font.sans-serif']=['simhei'] |
24小时发送量
该商户每天上午10点是发送高峰期,其次是下午的6点和7点,晚上11点至凌晨8点几乎不发送,避免打扰到用户。
1 | plt.style.use('ggplot') |
8月每天的发送量
该商户8月每天的发送量基本在4万条以下,27号发送量激增,考虑是临近月底,政府加大了力度宣传疫苗接种。
1 | dc=df.groupby(['day']).count() |
1 | print(dc.describe()) |
可以看到,8月的平均每天发送量是:17751,中位数是:12964,最小发送量是89,最大发送量是:141554;
发送量前五的签名
1 | dc1=df.groupby(['id']).count().sort_values('content',ascending=False).head(5) |
短信内容词云展示
1 | wordlist=df['content'].tolist() |
存储数据
将该商户8月的数据存储到mysql
1 | import pandas as pd |