WerateDogs数据分析

这是我的第一个数据分析项目,主要是对WerateDogs(一个以诙谐幽默的方式为狗狗评分的tweet)的数据进行收集和清洗,并生成可视化。
原创,禁止转载!

import pandas as pd
import numpy as np
import requests as rq
import tweepy
import json
import os
#设置数据的显示长度为500字符
pd.set_option('max_colwidth',500)
#读取twitter-archive-enhanced.csv文件,简写为tae
tae=pd.read_csv('twitter-archive-enhanced.csv')
tae[tae['retweeted_status_id'].notnull().values==True]

数据质量问题:

twitter-archive-enhanced表
  1.timestamp列和retweeted_status_user_id列的时间后面都有'+0000';
  2.source列有多余的html相关信息,只需要截取设备相关信息;
  3.与转发推文相关的列应该删除,根据项目要求没有相关图片的列也需要删除;
tae.info()

数据质量问题:

twitter-archive-enhanced表
4.所有“id”相关的数据类型应该是字符串,所有“timesatmp”相关的数据类型应该是Date type;
5.expanded_urls部分缺失,后续应该删除;
6.doggo、floofer、pupper、puppo列有大量空值,有的一个dogname对应2种stage。

数据整洁度问题:

twitter-archive-enhanced表
1.doggo、floofer、pupper、puppo四列应该合并成‘stage’一列
#首先查重,没有重复行
tae.duplicated()
tae['tweet_id'].duplicated().sum()
tae['text'].duplicated().sum()
#查询跟expanded_urls相关的缺失,应该是因为相关列属于转发列,所以没有url,后续删除。
tae[tae['expanded_urls'].isnull().values==True]
tae['text'].sort_values(0)
tae['expanded_urls'].value_counts()
tae['expanded_urls'].sort_values()

数据整洁度问题:

twitter-archive-enhanced表:
2.expanded_urls列出现很多重复的url;
tae['rating_numerator'].sample(100)
tae['rating_numerator'].value_counts()
tae['rating_numerator'].isnull().sum()
tae['rating_numerator'].sort_values()

数据质量问题:

twitter-archive-enhanced表:
7.rating_numerator列狗的评分有0分,还有很多评分达到三位数甚至4位数(观察发现可能是跟前面的text列出现的评分错误有关),还有空值;
tae['rating_denominator'].value_counts()
tae['rating_denominator'].sort_values()

数据质量问题:

twitter-archive-enhanced表:
  8.rating_denominator列很多基准评分是10分以上,甚至出现3位数(暂未知是否正确),有空值出现。
tae['name'].sample()
tae['name'].value_counts()
tae['name'].sort_values()

数据质量问题:

twitter-archive-enhanced表
  9.name列出现很多非名字的单词、字母‘a’或空值;
#创建一个文件夹,下载image-predicitons文件
folder_name = 'image-predictions'
if not os.path.exists(folder_name):
    os.makedirs(folder_name)
url='https://raw.githubusercontent.com/udacity/new-dand-advanced-china/master/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97/WeRateDogs%E9%A1%B9%E7%9B%AE/image-predictions.tsv'
response=rq.get(url)
with open(os.path.join(folder_name,url.split('/')[-1]),mode='wb') as file:
    file.write(response.content)
#读取image-predictions文件
ip=pd.read_csv('image-predictions/image-predictions.tsv',sep='\t')

数据质量问题:

image-predictions表
  10.tweet_id的类型应为字符串,而不是整形;
ip.duplicated()
ip['jpg_url'].duplicated().sum()

数据质量问题:

image-predictions表
  11.jpg_url列出现65条重复的url,应该是转发的,删除;
#读取tweet_json文件
tweet=pd.read_json('tweet_json.txt',lines=True)
tweet.info()
#这里只需要id、favorite count和retweet相关的数据ÿ
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值