大家好,本文将围绕python数据分析报告+代码展开说明,python数据分析报告 范文是一个很多人都想弄明白的事情,想搞清楚python数据分析简单案例需要先了解以下几个事情。
一、前期准备
三个包:Numpy、Pandas和matplotlib;工具:jupyter notebook。首先确保导入这两个包
#导入Numpy包
import numpy as np
#导入Pandas包
import pandas as pd
二、基础知识
Pandas有三种数据结构:Series、DataFrame和Panelc语言和python有什么区别。Series类似于一维数组;DataFrame是类似表格的二维数组;Panel可以视为Excel的多表单Sheet。
1.read_table
read_table(filepath_or_buffer, sep=False, delimiter=None, header=’infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=’infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar='”‘, quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
可以用于读取csv、excel、dat文件。
2.merge
merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, ‘_y’), copy=True, indicator=False, validate=None)
连接两个DataFrame并返回连接之后的DataFrame。
3.iloc
iloc函数:通过行号来取行数据(如取第二行的数据)
4.pivot_table
通过使用pandas.pivot_table()函数,可以实现与电子表格软件(例如Excel)的数据透视表功能相同的处理
5.groupby
和sql中的分组类似,pandas中的groupby函数也是先将df按照某个字段进行拆分,将相同属性分为一组;然后对拆分后的各组执行相应的转换操作;最后输出汇总转换后的各组结果。
三、具体案例
数据分析步骤:1.提出问题 2.理解数据 3.数据清洗 4.构建模型 5.数据可视化
3.1 MoviesLens 1M数据集
GroupLens实验室提供了一些从MoviesLens用户那里收集的20世纪90年代末到21世纪初的电影评分数据的集合。浙西额数据提供了电影的评分、流派、年份和观众数据(年龄、邮编、性别、职业)。 MovisLens1M数据集包含6000个用户对4000部电影的100万个评分。数据分布在三个表格之中:分别包含评分、用户信息和电影信息。
下载地址为:http://files.grouplens.org/datasets/movielens/,有好几种版本,对应不同数据量。
#读取users.dat文件
unames = ["user_id", "gender", "age", "occupation", "zip"]
users = pd.read_table("datasets/movielens/users.dat", sep="::",
header=None, names=unames, engine="python")
#读取ratings.dat文件
rnames = ["user_id", "movie_id", "rating", "timestamp"]
ratings = pd.read_table("datasets/movielens/ratings.dat", sep="::",
header=None, names=rnames, engine="python")
#读取movies.dat文件
mnames = ["movie_id", "title", "genres"]
movies = pd.read_table("datasets/movielens/movies.dat", sep="::",
header=None, names=mnames, engine="python")
首先读取users.dat、rating.dat、movies.dat三个文件,并将他们存储在不同的DataFrame中,分别命名为users、ratings、movies。
users.head(5)
ratings.head(5)
movies.head(5)
ratings
分别输出三个DataFrame的前五行,并输出ratings的全部数据。
data = pd.merge(pd.merge(ratings, users), movies)
data
data.iloc[0]
使用merge函数将ratings,users和movies进行合并,保留了三个DataFrame中所有的数据,并将他们之间重复的数据和行进行合并。合并生成名为data的新DataFrame,并输出整个数据以及读取第一行数据。
mean_ratings = data.pivot_table("rating", index="title",
columns="gender", aggfunc="mean")
mean_ratings.head(5)
<