数据分析实战 We Rate Dogs’: Twitter 数据分析

通过本项目学习者有机会完成体验整个数据分析过程,从收集数据到清理和分析数据,最后进行可视化分析。

数据来自推特帐号 ‘We Rate Dogs’ 以诙谐幽默的方式对人们的宠物狗评分。这些评分通常以 10 作为分母。但是分子则一般大于 10:11/10、12/10、13/10 ,因此可以让大多数狗的评分高于10分
源代码和数据集:https://github.com/DongDongGe1/EDA

1. Gathering Data

我们有三个数据集文件

  • twitter_archive_enhanced WeRateDogs twitter 的主要数据,从2015年到2017年
  • image_archive_master WeRateDogs twitter 的图像机器学习算法的结果
  • tweet_data 额外的 twitter 数据集,包括每条推文的转发次数,收藏次数等
# 导入相关工具包
import numpy as np
import pandas as pd
import requests
import json
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('ggplot')
%matplotlib inline

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False # 显示负数
twitter_df = pd.read_csv('../data/twitter-archive-enhanced.csv')
twitter_df.head()

在这里插入图片描述
twi_pred_df = pd.read_csv(’…/data/tweet-predictions.tsv’,sep=’\t’)
twi_pred_df.head()
在这里插入图片描述

with open('../data/tweet_data.txt','r') as f:
    data = json.load(f)
scrapped_df = pd.DataFrame(data)
scrapped_df.head()

2. Assessing The Data

我们的三个 data frames 是 twitter_df, twi_pred_df, scrapped_df

1.

twitter_df['in_reply_to_status_id'].count()
# 输出 78
twitter_df.info()

在这里插入图片描述

plt.figure(figsize=(20,8))
sns.heatmap(twitter_df.isnull(), cbar=False)
plt.show()

在这里插入图片描述

twi_pred_df.info()

在这里插入图片描述

scrapped_df.info()

在这里插入图片描述

  • 这些都是大数据集,所以我们可以清楚的看到一些问题,twitter_df 中的retweeted 需要删除。
  • twitter_df 中有 2 列少于 100 行,缺失值太多,也需要删除。
  • 三个数据框的行数都不同,scrapped_df 中有2342个,twi_pred_df 中有2075个,twitter_df 中有2356个,所以需要进行内连接。
    通过缺失值热力图可视化分析,我们可以看到 source 和 expanded_urls 应该被删除,因为它们包含我们不需要的数据,所有网址都是独一无二的。doggo,floofer,pupper,puppo 代表狗的四个阶段,可以合为一列

2.

twitter_df[twitter_df['expanded_urls'].duplicated()].count()

在这里插入图片描述

twitter_df['expanded_urls'].value_counts()

在这里插入图片描述
expanded url 可以让我知道 tweets 是重复的。所以 137 条 tweet 是重复的,为了证明这一点,我打开数据集发现有些 expanded url 有两条

twi_pred_df[twi_pred_df['jpg_url'].duplicated()].count()

在这里插入图片描述
predictions 的情况也一样,有66个重复行,不需要检查 scrapped_df,因为它将与twitter_df 合并,因此不会考虑重复的值。

3.

len(twi_pred_df) - len(twi_pred_df[(twi_pred_df['p1_dog']== True) & (twi_pred_df['p2_dog'] == True) & (twi_pred_df['p3_dog'] == True)])
# 输出 832
len(twi_pred_df) - len(twi_pred_df[(twi_pred_df['p1_dog']== True) | (twi_pred_df['p2_dog'] == True) | (twi_pred_df['p3_dog'] == True)])
# 输出 324

在 2075 项记录中,有 832 张可能是狗的图像。有 324 项,三个预测图像都不是狗,可以观察这 324 行,但可以肯定的是 342 张图肯定不是狗的图像

temp_df = twi_pred_df[(twi_pred_df['p1_dog']== False) | (twi_pred_df['p2_dog'] == False) | (twi_pred_df['p3_dog'] == False)]
temp_df.head()

在这里插入图片描述
打开第一个网址查看

from IPython.display import IFrame
IFrame('https://pbs.twimg.com/media/CT5KoJ1WoAAJash.jpg',width='100%', height=500)

在这里插入图片描述
很明显是乌龟

scrapped_df.info()

在这里插入图片描述

4.

twi_pred_df[
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值