Udacity数据分析(进阶)-清洗与分析数据

Udacity数据分析(进阶)-清洗与分析数据

简介

数据集来自推特用户 @dog_rates 的档案, 推特昵称为 WeRateDogs。WeRateDogs 是一个推特主,他以诙谐幽默的方式对人们的宠物狗评分。这些评分通常以 10 作为分母。WeRateDogs 拥有四百多万关注者,曾受到国际媒体的报道。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import requests
import json
import os

收集数据

#导入Twitter档案
twitter_archive_enhanced=pd.read_csv('twitter-archive-enhanced.csv')
#导入图像预测数据
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=requests.get(url)
with open(os.path.join('image-predictions'),mode='wb') as file:
    file.write(response.content)
image_predictions=pd.read_csv('image-predictions',sep='\t')
image_predictions.to_csv('image_predictions.tsv', index=False)
#导入额外附加数据
tweet_list=[]
with open('tweet_json.txt','r') as f:
    for row in f:
        json_dict= json.loads(row)
        to_append= {
   
   
            'tweet_id':json_dict['id_str'],
            'retweet_count':json_dict['retweet_count'],
            'favorite_count':json_dict['favorite_count']
        }
        tweet_list.append(to_append)
df_json=pd.DataFrame(tweet_list, columns=['tweet_id','retweet_count','favorite_count'])
tweet = pd.DataFrame(tweet_list, columns = ['tweet_id','retweet_count','favorite_count'])

数据评估

#设置显示列数及列宽
pd.options.display.max_columns=1000
pd.set_option('max_colwidth',200)
twitter_archive_enhanced.sample(5)

在这里插入图片描述

tweet_id:档案中的推特 ID
in_reply_to_status_id:回复ID
in_reply_to_user_id:被回复推文原始用户ID
timestamp:发文时间
source:消息来源(使用设备)
text:推文内容
retweeted_status_id:转发ID
retweeted_status_user_id:转发用户ID
retweeted_status_timestamp:转发时间
expanded_urls:推文链接
rating_numerator:评分分子
rating_denominator:评分分母
name:宠物名
doggo:狗的成长阶段,分类变量
floofer:狗的成长阶段,分类变量
pupper:狗的成长阶段,分类变量
puppo:狗的成长阶段,分类变量
twitter_archive_enhanced.info()

在这里插入图片描述

twitter_archive_enhanced.rating_denominator.value_counts()

在这里插入图片描述

twitter_archive_enhanced.text[twitter_archive_enhanced.rating_denominator==110]

在这里插入图片描述
评分的分母并不全为10,看起来这里有错误

twitter_archive_enhanced.name.value_counts().head()

在这里插入图片描述

twitter_archive_enhanced.text[twitter_archive_enhanced.name=='a'].iloc[0]

在这里插入图片描述
狗狗的名字中出现了55次"a",从上面看,很显然"a"并不是一个狗的名字,应该是作者在提取数据时发生了错误

dog_stage=twitter_archive_enhanced[['doggo','pupper','puppo','floofer']]
dog_stage.replace('None',np.nan).notnull().sum(axis=1).value_counts()

在这里插入图片描述
狗狗的分类不光有大量缺失值,而且还有对应2种类型的情况

image_predictions.sample(5)

在这里插入图片描述

tweet_id:档案中的推特 ID
jpg_url:预测的图像资源链接
img_num:最可信的预测结果对应的图像编号
p1:算法对推特中图片的一号预测
p1_conf:算法的一号预测的可信度
p1_dog:一号预测该图片是否属于“狗”(有可能是其他物种,比如熊、马等)
p2:算法对推特中图片预测的第二种可能性
p2_conf:算法的二号预测的可信度
p2_dog:二号预测该图片是否属于“狗”
p3:算法对推特中图片预测的第三种可能性
p3_conf:算法的三号预测的可信度
p3_dog:三号预测该图片是否属于“狗”
image_predictions.info()

在这里插入图片描述

sum(image_predictions.jpg_url.duplicated())

在这里插入图片描述
image_predictions表中预测的图像资源链接有66条重复项,应该为转发的内容,需要删除

tweet.sample(5)

在这里插入图片描述
在这里插入图片描述

tweet.info()

在这里插入图片描述

all_columns = pd.Series(list
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值