首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kaggle影评数据集,Python数据分析小例子1-4

Kaggle影评数据集,Python数据分析小例子1-4

作者头像
double
发布2020-02-13 14:57:07
发布2020-02-13 14:57:07
1.7K00
代码可运行
举报
文章被收录于专栏:算法channel算法channel
运行总次数:0
代码可运行
1 了解数据

数据来自kaggle,共包括三个文件:

  1. movies.dat
  2. ratings.dat
  3. users.dat

movies.dat包括三个字段:['Movie ID', 'Movie Title', 'Genre']

使用pandas导入此文件:

代码语言:javascript
代码运行次数:0
运行
复制
import pandas as pd

movies = pd.read_csv('./data/movietweetings/movies.dat', delimiter='::', engine='python', header=None, names = ['Movie ID', 'Movie Title', 'Genre'])

导入后,显示前5行:

代码语言:javascript
代码运行次数:0
运行
复制

依次导入其他两个数据文件

users.dat:

代码语言:javascript
代码运行次数:0
运行
复制
users = pd.read_csv('./data/movietweetings/users.dat', delimiter='::', engine='python', header=None, names = ['User ID', 'Twitter ID'])
print(users.head())

rating.data:

代码语言:javascript
代码运行次数:0
运行
复制
ratings = pd.read_csv('./data/movietweetings/ratings.dat', delimiter='::', engine='python', header=None, names = ['User ID', 'Movie ID', 'Rating', 'Rating Timestamp'])
print(ratings.head())
代码语言:javascript
代码运行次数:0
运行
复制
2 read_csv使用说明

说明,本次导入dat文件使用pandas.read_csv函数。

第一个位置参数./data/movietweetings/ratings.dat 表示文件的相对路径

第二个关键字参数:delimiter='::',表示文件分隔符使用::

后面几个关键字参数分别代表使用的引擎,文件没有表头,所以headerNone;

导入后dataframe的列名使用names关键字设置,这个参数大家可以记住,比较有用。

3 处理组合值

movies字段Genre表示电影的类型,可能有多个值,分隔符为|,取值也可能为None.

针对这类字段取值,可使用Pandas中Series提供的str做一步转化,注意它是向量级的,下一步,如Python原生的str类似,使用contains判断是否含有comedy字符串:

代码语言:javascript
代码运行次数:0
运行
复制
mask = movies.Genre.str.contains('comedy',case=False,na=False)

注意使用的两个参数:case, na

case为 False,表示对大小写不敏感;na Genre列某个单元格为NaN时,我们使用的充填值,此处填充为False

返回的mask是一维的Series,结构与 movies.Genre相同,取值为True 或 False.

观察结果:

验证结果,打印movies表的前10行,验证OK,只有index为5,6的行,其Genre取值包括 comedy.

4 提取目标行记录

得到掩码mask后,pandas非常方便地能提取出目标记录:

代码语言:javascript
代码运行次数:0
运行
复制
comedy = movies[mask]
comdey_ids = comedy['Movie ID']

以上,在pandas中被最频率使用,不再解释。

因为字段 Movie ID 中间有空格,所以不能使用comedy.Movie ID提取这列值。

看结果comedy_ids.head(10):第一列为索引列,依然对应movies表的index,第二列为Movie ID,这些电影的Genre都包括comedy.

限于篇幅,限于时间,下一篇接着聊~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 了解数据
  • 2 read_csv使用说明
  • 3 处理组合值
  • 4 提取目标行记录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档