五个Pandas 实战案例带你分析操作数据的完整攻略
Pandas 是 Python 数据分析中重要的第三方库之一,它提供了高效灵活的数据操作和分析工具,被广泛用于数据清洗、数据可视化等领域,特别适用于结构化和标签型数据。
本篇攻略将介绍五个Pandas实战案例来带你分析操作数据。这些案例将涉及到 Pandas 常用的数据处理、分析和可视化方法,能够帮助你快速了解 Pandas 的核心特性和使用方法。
案例1:统计电影数据分析
该案例主要使用电影数据进行统计分析。首先,我们需要导入 Pandas 库和电影数据:
import pandas as pd
movies = pd.read_csv('movies.csv')
接着,我们可以使用 Pandas 提供的方法来了解电影数据集信息,例如观察数据的前几行、数据集大小、数据类型等:
print(movies.head())
print(movies.shape)
print(movies.info())
在了解数据的基础上,我们接着可以进行一些数据处理和可视化,例如:
(1)统计电影类型数量排名前 20,生成水平柱状图
from collections import Counter
genre_counts = Counter(','.join(movies['genres']).split(','))
genre_counts_df = pd.DataFrame.from_dict(genre_counts, orient='index', columns=['count'])
top20_genre_counts = genre_counts_df.sort_values('count', ascending=False).head(20)
ax = top20_genre_counts.plot(kind='barh', figsize=(10, 6))
ax.set_title('Top 20 Movie Genres by Count')
ax.set_xlabel('Count')
ax.set_ylabel('Genre')
plt.tight_layout()
plt.show()
(2)计算电影平均评分排名前 20,生成水平柱状图
ratings = pd.read_csv('ratings.csv')
movie_ratings = pd.merge(movies, ratings, on='movieId')
mean_ratings = movie_ratings.groupby('title')['rating'].mean()
top20_mean_ratings = mean_ratings.sort_values(ascending=False).head(20)
ax = top20_mean_ratings.plot(kind='barh', figsize=(10, 6))
ax.set_title('Top 20 Movies by Mean Rating')
ax.set_xlabel('Mean Rating')
ax.set_ylabel('Title')
plt.tight_layout()
plt.show()
案例2:数据清洗分析
该案例主要使用学生数据进行数据清洗及分析,例如填补缺失数据、删除重复数据、数据排序等操作。
首先,我们需要导入 Pandas 库和学生数据:
import pandas as pd
students = pd.read_csv('students.csv')
接着,我们可以使用 Pandas 提供的方法进行数据清洗,例如:
(1)填补缺失数据
students['age'].fillna(students['age'].mean(), inplace=True)
students['height'].fillna(students['height'].median(), inplace=True)
(2)删除重复数据
students.drop_duplicates(inplace=True)
(3)数据排序
students.sort_values(['grade', 'age'], ascending=[False, True], inplace=True)
在数据清洗后,我们可以进行数据分析,例如统计学生的平均身高、平均年龄、及格率等:
mean_height = students['height'].mean()
mean_age = students['age'].mean()
pass_rate = students[students['score'] >= 60]['score'].count() / students.shape[0]
print('Mean height: {:.2f}cm'.format(mean_height))
print('Mean age: {:.2f} years'.format(mean_age))
print('Pass rate: {:.2f}%'.format(pass_rate * 100))
案例3:房产市场分析
该案例主要使用房屋销售数据进行市场分析,例如统计某个城市每月成交量、平均价格、最高价格、最低价格等信息。
首先,我们需要导入 Pandas 库和房屋销售数据:
import pandas as pd
house_sales = pd.read_csv('house_sales.csv')
接着,我们可以使用 Pandas 提供的方法进行数据预处理,例如:
(1)转换销售时间格式
house_sales['date'] = pd.to_datetime(house_sales['date'])
house_sales['month'] = house_sales['date'].dt.to_period('M')
(2)提取城市名称
house_sales['city'] = house_sales['location'].apply(lambda x: x.split(',')[0])
在预处理后,我们可以进行数据分析,例如统计某个城市每月成交量、平均价格、最高价格、最低价格等信息:
city_sales_grouped = house_sales.groupby(['city', 'month'])
city_sales_summary = city_sales_grouped['price'].agg(['count', 'mean', 'max', 'min'])
city_sales_summary.reset_index(inplace=True)
sh_sales_summary = city_sales_summary[city_sales_summary['city'] == 'Shanghai']
ax = sh_sales_summary.plot(x='month', y='count', figsize=(10, 6))
ax.set_title('Monthly House Sales Volume in Shanghai')
ax.set_xlabel('Month')
ax.set_ylabel('Sales Volume')
plt.show()
ax = sh_sales_summary.plot(x='month', y='mean', figsize=(10, 6))
ax.set_title('Monthly House Sales Price in Shanghai')
ax.set_xlabel('Month')
ax.set_ylabel('Sales Price')
plt.show()
案例4:股票市场分析
该案例主要使用股票数据进行市场分析,例如分析某个股票的涨跌幅、均价等信息。
首先,我们需要导入 Pandas 库和股票数据:
import pandas as pd
stocks = pd.read_csv('stocks.csv')
接着,我们可以使用 Pandas 提供的方法进行数据预处理,例如:
(1)转换股票时间格式
stocks['date'] = pd.to_datetime(stocks['date'])
(2)将日期设置为索引
stocks.set_index('date', inplace=True)
在预处理后,我们可以进行数据分析,例如分析某个股票的涨跌幅、均价等信息:
tsla_stocks = stocks[stocks['symbol'] == 'TSLA']
tsla_stocks['day_change'] = tsla_stocks['close'] - tsla_stocks['open']
tsla_stocks['day_change_pct'] = tsla_stocks['day_change'] / tsla_stocks['open']
tsla_stocks['ma20'] = tsla_stocks['close'].rolling(window=20).mean()
ax = tsla_stocks.plot(y='day_change_pct', figsize=(10, 6))
ax.set_title('Daily Change Percentage of TSLA')
ax.set_xlabel('Date')
ax.set_ylabel('Percentage')
plt.show()
ax = tsla_stocks.plot(y='ma20', figsize=(10, 6))
ax.set_title('20-Day Moving Average of TSLA')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
plt.show()
案例5:游戏销售分析
该案例主要使用游戏销售数据进行分析,例如统计各个游戏类别的销售量、销售额等信息。
首先,我们需要导入 Pandas 库和游戏销售数据:
import pandas as pd
game_sales = pd.read_csv('game_sales.csv')
接着,我们可以使用 Pandas 提供的方法进行数据预处理,例如:
(1)将数据按游戏平台分组
platform_sales = game_sales.groupby('platform')
(2)构建新的数据表格,并计算销售量和销售额
platform_sales_summary = pd.DataFrame()
platform_sales_summary['sales'] = platform_sales['global_sales'].sum()
platform_sales_summary['amount'] = platform_sales['global_sales'].count()
在预处理后,我们可以进行数据分析,例如统计各个游戏类别的销售量、销售额等信息:
ax = platform_sales_summary.sort_values('sales', ascending=False).plot(kind='bar', y='sales', figsize=(10, 6))
ax.set_title('Global Game Sales on Different Platforms')
ax.set_xlabel('Platform')
ax.set_ylabel('Sales')
plt.show()
ax = platform_sales_summary.sort_values('amount', ascending=False).plot(kind='bar', y='amount', figsize=(10, 6))
ax.set_title('Global Game Amount on Different Platforms')
ax.set_xlabel('Platform')
ax.set_ylabel('Amount')
plt.show()
以上就是五个Pandas实战案例带你分析操作数据的完整攻略,希望能对你的学习和实践有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:五个Pandas 实战案例带你分析操作数据 - Python技术站