项目概述
本教程将指导你如何使用AI编程助手(豆包/腾讯元宝/深度思考)配合Python完成好友性别数据的分析与可视化项目。我们将从数据采集、处理到可视化展示,一步步完成这个数据分析项目。
工具准备
- 选择AI编程助手:豆包/腾讯元宝/深度思考(任选其一)
- 安装Python环境(推荐3.8+版本)
- 安装必要库:
pip install itchat pandas matplotlib
项目实现步骤
步骤1:使用AI助手生成基础代码框架
向AI助手提问:
请用Python编写一个微信好友性别数据分析脚本,要求包含以下功能:
1. 使用itchat获取微信好友列表
2. 统计男女比例
3. 使用matplotlib生成可视化图表
AI助手可能会返回类似以下代码:
import itchat
import pandas as pd
import matplotlib.pyplot as plt
# 登录微信
itchat.auto_login(hotReload=True)
# 获取好友列表
friends = itchat.get_friends(update=True)
# 转换为DataFrame
df = pd.DataFrame(friends)
# 性别统计 (1-男, 2-女, 0-未知)
gender_counts = df['Sex'].value_counts()
gender_counts.index = ['未知', '男', '女']
# 可视化
plt.figure(figsize=(8, 6))
gender_counts.plot(kind='pie', autopct='%1.1f%%', colors=['gray', 'blue', 'pink'])
plt.title('微信好友性别比例分析')
plt.ylabel('')
plt.show()
步骤2:优化代码与功能扩展
向AI助手进一步提问:
请优化上面的代码,增加以下功能:
1. 添加数据保存功能(保存为CSV)
2. 增加柱状图展示
3. 添加省份分布分析
优化后的代码可能如下:
import itchat
import pandas as pd
import matplotlib.pyplot as plt
# 登录微信
itchat.auto_login(hotReload=True)
# 获取好友列表并处理
friends = itchat.get_friends(update=True)
df = pd.DataFrame([{
'NickName': friend['NickName'],
'Sex': '男' if friend['Sex'] == 1 else '女' if friend['Sex'] == 2 else '未知',
'Province': friend['Province'],
'City': friend['City'],
'Signature': friend['Signature']
} for friend in friends])
# 保存数据
df.to_csv('wechat_friends.csv', index=False, encoding='utf-8-sig')
# 性别分析
plt.figure(figsize=(12, 5))
# 饼图
plt.subplot(1, 2, 1)
gender_counts = df['Sex'].value_counts()
gender_counts.plot(kind='pie', autopct='%1.1f%%',
colors={'男':'blue', '女':'pink', '未知':'gray'})
plt.title('好友性别比例')
# 柱状图
plt.subplot(1, 2, 2)
gender_counts.plot(kind='bar', color=['blue', 'pink', 'gray'])
plt.title('好友性别数量')
plt.xlabel('性别')
plt.ylabel('人数')
plt.tight_layout()
plt.savefig('gender_analysis.png')
plt.show()
# 省份分析
province_counts = df[df['Province'] != '']['Province'].value_counts()[:10]
plt.figure(figsize=(10, 6))
province_counts.plot(kind='barh', color='teal')
plt.title('好友省份分布TOP10')
plt.xlabel('人数')
plt.tight_layout()
plt.savefig('province_distribution.png')
plt.show()
步骤3:使用AI解释代码
可以向AI提问:
请解释上面代码中以下几个关键部分:
1. itchat.get_friends()返回的数据结构
2. pandas的value_counts()方法作用
3. matplotlib的subplot用法
步骤4:处理实际问题
当遇到问题时,例如:
运行代码时出现错误:ModuleNotFoundError: No module named 'itchat'
AI会指导你:
这个错误说明缺少itchat库,请使用以下命令安装:
pip install itchat
如果安装失败,可以尝试:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple itchat
步骤5:进一步美化可视化效果
向AI提问:
如何让上面的图表更美观专业?请提供改进建议和代码
AI可能会建议:
# 在之前代码基础上添加以下美化设置
plt.style.use('ggplot') # 使用ggplot风格
# 在绘制图表前添加以下代码
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
# 在绘制饼图时添加阴影和突出效果
gender_counts.plot(kind='pie', autopct='%1.1f%%',
colors=['#66b3ff','#ff9999','#99ff99'],
explode=(0.05, 0.05, 0),
shadow=True, startangle=90)
项目总结
通过本教程,你学会了:
- 如何使用AI助手快速生成数据分析代码框架
- 如何逐步完善和优化代码功能
- 如何解决实际运行中遇到的问题
- 如何美化数据可视化效果
使用AI编程助手的优势:
- 快速生成基础代码,节省开发时间
- 实时解答编程问题,提高学习效率
- 提供多种解决方案,拓宽思路
- 帮助理解复杂概念,降低学习门槛
你可以继续向AI助手提问,探索更多数据分析功能,如:
- 好友签名情感分析
- 地理位置热力图
- 头像色彩分析等