Python Pandas 数据分析项目实例

Python 中使用 Pandas 进行数据分析的项目可以涉及多种不同的任务,例如数据清洗、数据转换、统计分析、可视化等。数据清洗和转换是根据数据质量和项目目标而定的,可能涉及更复杂的处理。数据可视化可以使用各种图表类型,根据需要选择合适的图表。实际的数据分析项目可能涉及更多复杂的处理和分析技术。

假设我们有一个电子商务公司的销售数据,包含了客户购买记录、商品价格、购买日期等信息。我们的目标是分析这些数据,提取有价值的信息,例如总销售额、最畅销的产品、销售趋势等。

1、安装引用Pandas

如没有安装 Pandas,可以通过 pip 安装它。参考下面的文档。然后在 Python 脚本或 Jupyter 笔记本中导入 Pandas。

参考文档:Python Pandas 安装和设置

2、加载数据

使用 Pandas 加载数据。Pandas 支持多种格式的数据,如 CSV、Excel、SQL 数据库和 JSON。根据数据源的格式,选择合适的方法进行加载。不同的加载方法可以参考下面的文档。

参考文档:不同的数据源读取数

3、查看数据

可以使用 head() 方法查看数据集的前几行。使用 shape 属性查看行数和列数。使用 info() 方法查看每列的名称、非空值数量和数据类型。对于类别型数据,可以使用 value_counts() 方法来查看每个类别的频数分布。

import pandas as pd

# 假设这是 data.csv 的内容
from io import StringIO
data = StringIO("""
Movie,Rating,Reviews
Inception,8.8,19000
The Matrix,8.7,15000
Interstellar,8.6,20000
The Prestige,8.5,17000
""")

# 读取数据
df = pd.read_csv(data)

# 查看前几行
print("头部数据:")
print(df.head())

# 查看数据集的大小
print("\n数据集大小:")
print(df.shape)

# 查看列名和数据类型
print("\n数据信息:")
print(df.info())

# 查看统计摘要
print("\n统计摘要:")
print(df.describe())

# 检查缺失值
print("\n缺失值检查:")
print(df.isnull().sum())

# 随机抽样
print("\n随机样本:")
print(df.sample(2,replace=False))

4、数据清洗及类型转换

进行数据分析时,数据清洗是一个非常重要的步骤。数据清洗通常包括处理缺失值、去除重复数据、转换数据格式、标准化文本值等操作。相关方法以及示例代码,可以参数下面的文档。

参考文档:Python Pandas 数据清洗

5、数据分析

示例数据为商品每日的销售数量及价格,分析出总的销售的额,和最畅销的产品,最后根据日期和销售额生成柱状图,如下,

import pandas as pd
import matplotlib.pyplot as plt
from io import StringIO

# 示例数据
data = """Date,Product,Quantity,Price
2024-01-01,C,10,20
2024-01-02,C#,15,25
2024-01-03,JAVA,12,30
2024-01-04,Python,20,20
2024-01-05,JavaScript,10,25"""

# 将字符串数据转换为DataFrame
df = pd.read_csv(StringIO(data))

# 数据探索
print("Initial Data:")
print(df.head())
print("\nData Info:")
print(df.info())

# 数据清洗
df = df.dropna()

# 数据转换
df['Date'] = pd.to_datetime(df['Date'])
df['Total_Sales'] = df['Quantity'] * df['Price']

# 数据分析
total_sales = df['Total_Sales'].sum()
best_selling = df.groupby('Product')['Total_Sales'].sum().idxmax()

print(f"\n总销售额: {total_sales}")
print(f"最畅销的产品: {best_selling}")

# 数据可视化
df.groupby(df['Date'].dt.day)['Total_Sales'].sum().plot(kind='bar')
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Total Sales')
plt.show()

参考文档:

Python Pandas 数据可视化

Python Pandas 时间序列分析

Python Pandas 时间序列分析 日期时间的处理和转换

Python Pandas 高级数据操作 多层索引

Python Pandas 高级数据操作 数据透视表

Python Pandas 高级数据操作 优化技巧和最佳实践

Python Pandas 高级数据操作 Categorical 数据类型的使用

推荐阅读
cjavapy编程之路首页