split 本项目基于 Kaggle 电影影评数据集,与大家一起实战,包括:
- 如何使用 Pandas 做数据清洗和特征工程;
- 如何进行数据探索性分析 (
EDA
);
学会数据分析的基本思维、基本技能和工具。包括:使用数据分析常用工具 numpy
和 pandas
,绘图工具 matplotlib
和 pyecharts
.
本项目需要导入的包:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pyecharts.charts import Bar,Grid,Line,Pie
import pyecharts.options as opts
from pyecharts.globals import ThemeType
1 导入数据
数据来自 Kaggle,共包括如下三个文件:
- movies.dat ,共有 34000+ 行记录
- ratings.dat,共有 810000+ 行记录
- users.dat,共有 60000+ 行记录
百度网盘的下载链接:
https://pan.baidu.com/s/1Na8RCfpnyFrm1aTtMgiDuQ 提取码: wvnx
首先,导入电影数据文件 movies.dat
,它共包括 3 个字段:Movie ID, Movie Title, Genre,分别表示电影 ID、电影名称、题材(可能属于多个题材,中间用 | 分割),使用 pandas 导入此文件:
import pandas as pd
movies = pd.read_csv('../dataset/movietweetings/movies.dat', delimiter='::',
engine='python', header=None, names = ['Movie ID', 'Movie Title', 'Genre'],encoding='utf-8')
movies.head()
导入后的数据,前 5 行显示如下:
其次,导入用户相关的数据文件 users.dat
:
users = pd.read_csv('../dataset/movietweetings/users.dat', delimiter='::',
engine='python', header=None, names = ['User ID', 'Twitter ID'], encoding='utf-8')
users.head()
它一共有 2 列,分别表示用户 ID, Twitter ID, 前 5 行数据显示结果:
同样方法导入 rating.data,关于评分记录:
ratings = pd.read_csv('../dataset/movietweetings/ratings.dat', delimiter='::',
engine='python', header=None, names = ['User ID', 'Movie ID', 'Rating', 'Rating Timestamp'], encoding='utf-8')
ratings.head()
前 5 行结果显示如下,一共有 4 列。分别表示用户 ID, 电影 ID,电影得分,评分时间戳。
read_csv 使用说明
- 第一个参数表示文件的相对路径
- 第二个关键字参数:delimiter='::',表示文件分隔符使用::
- 后面几个关键字参数分别代表使用的引擎,文件没有表头,所以 header 为None;
- 导入后 DataFrame 的列名,使用
names
关键字设置,这个参数大家可以记住,比较有用。
2 数据预览
前面提到过,Pandas 提供 2 个很好用的方法:info
、describe
。
info
统计出数据的每一列类型,是否为 null 和个数;
describe
描述出数据每一列的统计学属性信息,