Python数据分析之糗事百科第二弹

简介: 上回说到糗事百科段子的分析,今天对另外一张表,也就是用户信息表的分析。数据预处理导入数据import pandas as pdimport pymongoimport jieba.

上回说到糗事百科段子的分析,今天对另外一张表,也就是用户信息表的分析。

数据预处理

  • 导入数据
import pandas as pd
import pymongo
import jieba.analyse
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
client = pymongo.MongoClient('localhost',port = 27017)
qiushi = client['qiushi']
qiushi_info = qiushi['qiushi_info']
data1 = pd.DataFrame(list(qiushi_info.find()))

qiushi = client['qiushi']
user_info = qiushi['user_info']
data2 = pd.DataFrame(list(user_info.find()))

data1为段子信息,data2为用户信息,二个表都有用户url,我们可以将其merge。

  • merge
all_data = pd.merge(data1,data2,on='user_url')
all_data
3629157-17bfc36e022b269d.jpg
  • 去重
    由于有些高玩用户发过多个段子,所以这里需要去重,通过用户id获取唯一值。
data3 = all_data.drop_duplicates(['id'])

段子手星座分布

对于数字类的分析,上次已经讲过几个,我主要是对段子手的星座和地区感兴趣,今天就分析下,大家也可以每个维度都分析下。

xingzuo = data3.groupby('constellation').size()

plt.figure(figsize=(10,6),dpi=80)
labels = list(xingzuo.index)
sizes = list(xingzuo)
plt.xlabel('星座')
plt.ylabel('用户个数')
plt.title('糗事百科用户星座分布图')
plt.bar(range(len(sizes)),sizes,tick_label=labels,color='#99CC01',alpha=0.7)#alpha为透明度
plt.grid(color='#95a5a6',linestyle='--', linewidth=1,axis='y',alpha=0.6)
plt.legend(['用户个数'])
for x,y in zip(range(len(sizes)),sizes):
    plt.text(x, y,y, ha='center', va= 'bottom')
3629157-5ae6663da3e77eba.jpg

除了不详的之外,天秤座用户最多,白羊座最少。

天秤座常常追求和平和谐的感觉,他们善于交谈,沟通能力极强是他们最大的优点。但他们最大的缺点,往往是犹豫不决。天秤座的人容易将自己的想法加诸到别人身上,天秤座的人要小心这点

白羊座就像小孩子一样,直率、热情、冲动,但也十分的自我为中心和孩子气

段子手地区分布

如图,数据是分省和市的,我们只提取省的数据,这部分可以在爬虫时进行处理。


3629157-e836945511f54da4.jpg
list_1=[]
for i in range(0,273):
    list_1.append(data3.iat[i,-6].split('· ')[0])
data3['province'] = list_1
data3
3629157-69837eed0f097895.jpg
sheng = data3.groupby('province').size()
plt.figure(figsize=(20,6),dpi=80)
labels = list(sheng.index)
sizes = list(sheng)
plt.xlabel('省市')
plt.ylabel('用户个数')
plt.title('糗事百科用户省市分布图')
plt.bar(range(len(sizes)),sizes,tick_label=labels,color='#99CC01',alpha=0.7)#alpha为透明度
plt.grid(color='#95a5a6',linestyle='--', linewidth=1,axis='y',alpha=0.6)
plt.legend(['用户个数'])
for x,y in zip(range(len(sizes)),sizes):
    plt.text(x, y,y, ha='center', va= 'bottom')
3629157-cb047a2a50a5ba60.jpg

大家看看,哪个省盛产段子手。我们也可以调用百度api,获取省的经纬度,然后用BDP画出这样的地图。

img_0ed2769de7716dd9596553d2faca8f8b.png

总结

通过2个案例主要讲解了python数据分析的基本流程。

  • 数据导入
  • 数据预处理
  • 数据整合
  • 数据可视化
相关文章
|
2天前
|
Python 数据挖掘 存储
Python 数据分析(PYDA)第三版(七)(4)
Python 数据分析(PYDA)第三版(七)
|
Python Shell 存储
Python 数据分析(PYDA)第三版(七)(3)
Python 数据分析(PYDA)第三版(七)
Python 数据分析(PYDA)第三版(七)(3)
|
机器学习/深度学习 数据可视化 Python
Python 数据分析(PYDA)第三版(六)(2)
Python 数据分析(PYDA)第三版(六)
|
机器学习/深度学习 Python 数据挖掘
Python 数据分析(PYDA)第三版(六)(1)
Python 数据分析(PYDA)第三版(六)
|
2天前
|
Python 数据格式 XML
Python 数据分析(PYDA)第三版(三)(1)
Python 数据分析(PYDA)第三版(三)
|
2天前
|
数据挖掘 索引 Python
Python 数据分析(PYDA)第三版(二)(3)
Python 数据分析(PYDA)第三版(二)
|
2天前
|
存储 数据挖掘 索引
Python 数据分析(PYDA)第三版(二)(1)
Python 数据分析(PYDA)第三版(二)
Python 数据分析(PYDA)第三版(二)(1)
|
2天前
|
数据挖掘 Python 索引
Python 数据分析(PYDA)第三版(一)(3)
Python 数据分析(PYDA)第三版(一)
Python 数据分析(PYDA)第三版(一)(3)
|
3天前
|
机器学习/深度学习 数据采集 数据挖掘
Python 的科学计算和数据分析: 解释什么是数据规整(Data Wrangling)?
数据规整是将原始数据转化为适合分析和建模的格式的关键步骤,涉及缺失值处理(删除、填充、插值)、异常值检测与处理、数据类型转换、重采样、数据合并、特征选择和特征变换等任务。这些预处理步骤确保数据质量和准确性,为后续的数据分析和机器学习模型构建奠定基础。
13 4
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。