用 python 进行微信好友信息分析

  • Post category:Python

这里给您详细讲解一下“用Python进行微信好友信息分析”的完整实例教程,供您参考。

1. 准备工作

本教程需要以下准备工作:

  • 微信登录PC端;
  • 下载安装Python,并配置相关环境;
  • 下载安装itchat和matplotlib两个Python库:pip install itchatpip install matplotlib

2. 登录微信并获取好友信息

首先,我们需要使用itchat库登录微信并获取好友信息:

import itchat

# 登录微信
itchat.login()

# 获取好友信息列表
friends = itchat.get_friends(update=True)[0:]

这里get_friends()函数可以获取到列表包含好友信息,包括好友昵称、性别、省份、城市等信息。

3. 数据清洗

获取好友信息后,我们需要进行初步的数据清洗工作,去除无关信息和异常值。这里只保留好友性别、所在省份和城市信息,其余的信息全部剔除。

# 数据清洗
cleaned_friends = []
for friend in friends:
    data = {
        'Sex': friend['Sex'],
        'Province': friend['Province'],
        'City': friend['City']
    }
    cleaned_friends.append(data)

4. 数据分析

接下来,我们对好友信息进行数据分析,使用matplotlib库绘制不同省份和城市的好友数量分布图:

import matplotlib.pyplot as plt

# 将数据转存到DataFrame中
df = pd.DataFrame(cleaned_friends)

# 根据省份和城市分组,并统计数量
province_count = df.groupby('Province').count()['Sex'].sort_values(ascending=False)[:10]
city_count = df.groupby('City').count()['Sex'].sort_values(ascending=False)[:10]

# 绘制省份分布柱状图
province_count.plot(kind='bar', rot=0)
plt.xlabel('Province')
plt.ylabel('Count')
plt.title('Top 10 Provinces')
plt.show()

# 绘制城市分布柱状图
city_count.plot(kind='bar', rot=0)
plt.xlabel('City')
plt.ylabel('Count')
plt.title('Top 10 Cities')
plt.show()

5. 示例

这里用两个示例说明如何进行微信好友信息分析:

示例1:统计好友性别分布

我们可以使用以下代码进行好友性别分布统计:

import pandas as pd
import matplotlib.pyplot as plt

# 获取好友信息列表
friends = itchat.get_friends(update=True)[0:]

# 数据清洗
cleaned_friends = []
for friend in friends:
    data = {
        'Sex': friend['Sex'],
    }
    cleaned_friends.append(data)

# 将数据转存到DataFrame中
df = pd.DataFrame(cleaned_friends)

# 统计数量并绘图
sex_count = df.groupby('Sex').count()['City']
sex_count.plot(kind='pie', autopct='%.2f%%')
plt.title('Gender Distribution')
plt.show()

示例2:统计好友地区分布

我们可以使用以下代码进行好友地区分布统计:

import pandas as pd
import matplotlib.pyplot as plt

# 获取好友信息列表
friends = itchat.get_friends(update=True)[0:]

# 数据清洗
cleaned_friends = []
for friend in friends:
    data = {
        'Province': friend['Province'],
        'City': friend['City'],
    }
    cleaned_friends.append(data)

# 将数据转存到DataFrame中
df = pd.DataFrame(cleaned_friends)

# 根据省份和城市分组,并统计数量
province_count = df.groupby('Province').count()['City'].sort_values(ascending=False)[:10]
city_count = df.groupby('City').count()['Province'].sort_values(ascending=False)[:10]

# 绘制省份分布柱状图
province_count.plot(kind='bar', rot=0)
plt.xlabel('Province')
plt.ylabel('Count')
plt.title('Top 10 Provinces')
plt.show()

# 绘制城市分布柱状图
city_count.plot(kind='bar', rot=0)
plt.xlabel('City')
plt.ylabel('Count')
plt.title('Top 10 Cities')
plt.show()

以上是针对微信好友信息分析的完整实例教程。