利用python进行数据分析第二章第二个例子

本文通过Python进行数据分析,利用Pandas库整合用户、电影及评分数据,分析了不同性别用户对电影的评分偏好,并筛选出最受女性欢迎及评分分歧最大的电影。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
"""
Created on Thu May  4 17:32:45 2017
利用python进行数据分析第二章第二个例子
数据下载:http://download.youkuaiyun.com/download/zdxxinlang/9671783
@author: 80002419
"""
import pandas as pd
import numpy as np


#将数据导入数据框中
users_cols = ['user_id','gender','age','occp','zip']
users=pd.read_table(r"E:\python\data\ml-1m\ml-1m\users.dat",sep='::',header=None,names=users_cols)
ratings_cols = ['user_id','movie_id','rating','rating_date']
ratings = pd.read_table(r"E:\python\data\ml-1m\ml-1m\ratings.dat",sep='::',header=None,names=ratings_cols)
movies_cols = ['movie_id','title','genres']
movies = pd.read_table(r"E:\python\data\ml-1m\ml-1m\movies.dat",sep='::',header=None,names=movies_cols)


#合并三个表
big_table = pd.merge(pd.merge(ratings,users),movies)#默认会根据相同的列名来连接合并
mean_rating = big_table.pivot_table('rating',index='title',columns ='gender',aggfunc=np.mean)


rating_by_tital = big_table.groupby('title').size() ## 得到换title分组后的一数据列对象


#过滤分组大小不够300的电影
active_movies = rating_by_tital.index[rating_by_tital >= 300]


#求评分数大于300的电影的平均评分
mean_rating = mean_rating.ix[active_movies]
#了解女性最喜欢的电影 即女性对电影平均评分最高的电影
top_fmale_movies = mean_rating.sort_values(by='F',ascending=False)#根据F字段,排序
top10_fmale_movies =top_fmale_movies[:10]


#计算男女观影最大分歧
mean_rating['diff'] = mean_rating['M']-mean_rating['F']


sorted_by_diff=mean_rating.sort_values(by='diff')


sorted_by_diff[:15]#分歧最大且女性喜欢看的电影
sorted_by_diff[::-1][:15]#分歧最大且女性喜欢看的电影


#不考虑性别因素的分歧 
ratings_std_by_title = big_table.groupby('title')['rating'].std()#求点电影评分的标准差
ratings_std_by_title = ratings_std_by_title.ix[active_movies]
ratings_std_by_title.order(accending = False)[:10]
### Python 数据分析 第一章 总结 Python 数据分析的第一章主要介绍了数据分析的基础知识和核心工具。重点内容包括 NumPy 和 Pandas 的基本使用,以及如何处理数据的基本方法。 #### 1.1 NumPy 基础 NumPy 是 Python 中用于科学计算的核心库,提供了多维数组对象和各种派生对象(如掩码数组和矩阵)。以下是 NumPy 数组的一些关键属性[^4]: - **dtype**: 返回数组中元素的类型。 - **shape**: 返回由整数组成的元组,表示每个轴上的元素个数。 - **size**: 返回数组中元素的总数。 - **ndim**: 返回数组的维度数量。 - **nbytes**: 返回保存数据所需的字节数。 示例代码展示了如何创建一个简单的 NumPy 数组并访问其属性: ```python import numpy as np # 创建一个简单的数组 arr = np.array([1, 2, 3, 4, 5]) # 访问数组属性 print("dtype:", arr.dtype) # dtype: int64 print("shape:", arr.shape) # shape: (5,) print("size:", arr.size) # size: 5 print("ndim:", arr.ndim) # ndim: 1 print("nbytes:", arr.nbytes) # nbytes: 40 ``` #### 1.2 Pandas 基础 Pandas 是 Python 中用于数据分析的主要工具,提供了强大的数据结构和数据分析工具。Pandas 的核心数据结构是 `DataFrame` 和 `Series`。 示例代码展示了如何使用 Pandas 读取 Excel 文件中的数据[^2]: ```python import pandas as pd # 读取 Excel 文件 df = pd.read_excel('stock_data.xlsx') # 显示前几行数据 print(df.head()) ``` --- ### Python 数据分析 第二章 总结 第二章深入探讨了数据清洗、数据操作和可视化等高级主题。以下是主要内容: #### 2.1 数据清洗 数据清洗是数据分析的重要步骤,涉及处理缺失值、重复值和异常值等问题。Pandas 提供了许多方法来帮助完成这些任务。 示例代码展示了如何处理缺失值: ```python # 处理缺失值 df.dropna(inplace=True) # 删除包含缺失值的行 df.fillna(0, inplace=True) # 使用 0 填充缺失值 ``` #### 2.2 数据操作 Pandas 提供了丰富的数据操作功能,例如合并、分组和聚合等。 示例代码展示了如何对数据进行分组和聚合: ```python # 分组并计算均值 grouped = df.groupby('Category')['Value'].mean() print(grouped) ``` #### 2.3 数据可视化 Matplotlib 和 Seaborn 是 Python 中常用的可视化库。以下是一个简单的可视化示例: ```python import matplotlib.pyplot as plt # 绘制折线图 plt.plot(df['Date'], df['Value']) plt.xlabel('Date') plt.ylabel('Value') plt.title('Time Series Data') plt.show() ``` --- ### 示例总结 通过第一章和第二章的学习,可以掌握以下技能: - 使用 NumPy 进行高效的数值计算。 - 使用 Pandas 进行数据加载、清洗和操作。 - 使用 Matplotlib 和 Seaborn 进行数据可视化。 以上内容结合了理论与实践,为后续更复杂的数据分析任务奠定了基础。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值