1. 数据清洗和读取
功能说明:该函数主要用于读取存储微信聊天记录的 CSV 文件,同时对数据进行清洗。它会把 Time
列转换为日期时间格式,并且去除 Message
列中包含缺失值的行。此外,还添加了异常处理,当文件未找到或者出现其他错误时,会记录相应的错误信息。
2. 消息类型分析
功能说明:此函数用于统计每种消息类型的数量,然后通过 matplotlib
库绘制饼图来展示消息类型的分布情况。autopct='%1.1f%%'
用于在饼图上显示每种消息类型所占的百分比。
3. 每日消息数量趋势
功能说明:该函数会将 Time
列设置为索引,按天对消息数据进行重采样,统计每天的消息数量。接着使用 matplotlib
绘制折线图,以展示每日消息数量的变化趋势。
4. 词云生成
功能说明:此函数首先将所有聊天消息合并成一个字符串,然后使用 jieba
库对其进行中文分词。接着统计每个词语的出现频率,最后利用 WordCloud
类根据词频生成词云图。需要注意的是,为了正确显示中文,需要指定中文字体路径。
5. 聊天最多的一天
功能说明:该函数按天重采样数据,统计每天的消息数量,找出消息数量最多的一天。然后筛选出该天的聊天记录,并将其保存为 most_chat_day.csv
文件,同时记录相关信息到日志中。
6. 每小时消息统计
功能说明:此函数从 Time
列中提取小时信息,统计每小时的消息数量。然后使用 matplotlib
绘制柱状图,展示一天中不同小时的消息数量分布情况。
7. 主函数
功能说明:主函数借助 tkinter
库创建一个文件选择对话框,让用户选择存储微信聊天记录的 CSV 文件。如果用户选择了文件,就会依次调用前面定义的各个分析函数,完成数据分析和可视化操作。