作为一个学习用Python进行数据分析的新手来说,通过本文来记录分享一些我在用Python中的pandas、numpy来分析Excel表中数据的数据清洗和整理的工作,目的是熟悉numpy以及pandas基础操作,所有操作利用Excel均可以方便实现。备注:本文中使用的是ipython完成的编辑
数据来源及结构
本文所分析的数据是通过爬虫抓取的微博数据。选取新浪微博为数据平台,选取我国34个省的旅游政务官方微博为研究对象,利用爬虫软件Gooseeker爬取微博信息,包括用户名、粉丝数、开博日期、当月原创微博总数No、当月总微博数N、单条博文的转发数、单条博文的评论数、条博文的点赞数。
爬取的数据表格test.xlsx包括以下几个sheet中,基本表结构见下
1、All(所有博文):所有字段见下:其中有用字段是‘用户名、微博内容、时间、转发数、评论数、点赞数’,共有6585条数据(备注:转发数中的缺失值为“转发”,评论数中的缺失值为“评论”,点赞数中的缺失值为“赞”):
2、sf(各省信息表,此表中:省份名完整)
3、sfwibo (此表记录的是各个微博账号对应的省份名,省份名不完整,已知各个省份名只有前两个字完整)
4、base_info2(爬取的微博账户的相关信息)(备注:此处的“昵称”与sfweibo中的“微博用户名”等同)
本文思路:
Step1:对于All表:1)取出有用字段。2)处理缺失值。3)数据透视
Step2:对于sf 和sfweibo 表:1)以省份名做数据连接成sf_sfweibo。2)并与All表做数据连接sf_sfweibo_All。
Step3:对于base_info表:1)与sf_sfweibo_All做数据连接 2)计算h值 3)处理数据4)计算相关性
Step4:导出最后结果到一个Excel文件中,完成数据处理。、
数据处理过程:
step1 :
# -*- coding=utf-8 -*-
#导入需要的包
from__future__import division
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from numpy.randomimport randn
from pandasimport Series, DataFrame
from datetimeimport datetime
import xlrd, openpyxl
xlsx_file = pd.ExcelFile('test1.xlsx')
All = xlsx_file.parse('All')
1)取出有用字段
#删掉表格中的无用列,保留有用列
d1 = All.drop(All.columns[:11], axis=1, inplace = False)
All = d1.drop(d1.columns[-1], axis=1, inplace = False)
#显示表格前五行
All.head()
#查看去重未处理前表中记录长度
len(All)
#获取到重复的行的行号的前20个
All[All.duplicated()==True].index[:20]
#删除掉重复的行,在原值上直接修改
All.drop_duplicates(inplace=True)
len(All)#通过运行结果,可以发现确实删掉了,当前记录条数为6159条
2)处理缺失值
#处理缺失值,先获取该列,将列中的"转发”、"评论"、"